centos下安装mysql5.7

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/masicro/article/details/89191424

Linux下安装mysql三种方式

注意: linux下源码安装会遇到各种依赖问题,注意解决

参考博客:https://www.cnblogs.com/rencheng/p/6602004.html

对于linux平台我们有三种安装mysql方式,一下详细介绍各种方法的安装

RPM 二进制 源码
优点 安装简单 安装简单;可以安装到任何路径下,灵活性好;一台服务器可以装多个mysql 可按需定制编译,最灵活;性能最好,一台服务器可以装多个MySQL
缺点 需要单独下载服务端和客户端;安装路径不灵活,默认路径不能修改,一台服务器只能装一个mysql 已经经过编译,性能不如源码编译的好,不能灵活定制编译参数 安装过程比较复杂;编译时间长
文件布局 /usr/bin (客户端程序和脚本) /usr/sbin(mysqld服务器) /var/lib/mysql(日志文件和数据库)

2、二进制文件安装

1、rpm安装

比较简单,暂不做详细介绍

2、二进制文件安装

centos7由于默认安装了Mariadb数据库,在进行安装时删除

# 检查是否有Mariadb 
rpm -qa |grep mariadb
# 如果有就删除 
yum remove 包名

2.1、下载依赖和安装包

yum install -y libaio libaio-devel sqlite-devel
yum install -y numactl

官网下载通用二进制包并解压

2.2、 创建用户和用户组

groupadd mysql
useradd -g mysql mysql

2.3、创建数据存储路径

mkdir -p /usr/local/mysql/data
mkdir -p /usr/local/mysql/log
chown -R mysql:mysql /usr/local/mysql

2.4、编辑/etc/my.cnf

[client]
port = 3308
socket = /tmp/mysql.sock

[mysqld]
server_id=10
port = 3306
user = mysql
character-set-server = utf8mb4
default_storage_engine = innodb
log_timestamps = SYSTEM
socket = /tmp/mysql.sock
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
pid-file = /var/run/mysqld/mysql.pid
max_connections = 1000
max_connect_errors = 1000
table_open_cache = 1024
max_allowed_packet = 128M
open_files_limit = 65535

###==========[innodb]=================
innodb_buffer_pool_size = 1024M
innodb_file_per_table = 1
innodb_write_io_threads = 4
innodb_read_io_threads = 4
innodb_purge_threads = 2
innodb_flush_log_at_trx_commit = 1
innodb_log_file_size = 512M
innodb_log_files_in_group = 2
innodb_log_buffer_size = 16M
innodb_max_dirty_pages_pct = 80
innodb_lock_wait_timeout = 30
innodb_data_file_path=ibdata1:1024M:autoextend

#####============[log]===============
log_error = /usr/local/mysql/log/mysql-error.log 
slow_query_log = 1
long_query_time = 1 
slow_query_log_file = /usr/local/mysql/log/mysql-slow.log

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

2.5、初始化

bin/mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql

初始密码可以查看 cat /usr/local/mysql/log/mysql-error.log

AW1vtSJm9Y/k

2.6、拷贝启动脚本

cp support-files/mysql.server /etc/init.d/mysqld 

2.7、更改mysqld启动参数,并授权(开机自启动服务)

vim /etc/init.d/mysqld 
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

chmod 755 /etc/init.d/mysqld
chkconfig --add mysqld

2.8、启动、连接数据库(密码会随机生成,保存在error.log里面)

/etc/init.d/mysqld start
# 如果这里出现了var/run/mysqld/pid_file 文件错误
# 先是查看日志文件 ?log/mysql-error
# 解决: 创建该文件 并赋予相应的权限
cd /usr/local/mysql
./bin/mysql -uroot -p随机码

进去之后先修改密码,不然做不了其他操作

ALTER USER 'root'@'localhost' IDENTIFIED BY  'masicro(自定义)';

2.9、添加环境变量

vim /etc/profile
#在尾部添加下行
PATH="/usr/local/mysql/bin:$PATH"
source /etc/profile   ##使配置生效

2.10、配置远程链接

首先需要关闭防火墙设置

# 关闭iptables 防火墙设置
service iptables stop
# 取消开机自启动
chkconfig iptables off

配置远程链接

grant all on *.* to root@'%' identified by 'password'

3、源码安装

3.1源码包获取

参考:https://blog.csdn.net/AinUser/article/details/81414627

3.2、编译

3.2.1、创建一个mysql用户组

groupadd mysql
useradd -g mysql mysql

3.2.2、第二步解包

tar -xzvf mysql-version.tar.gz

3.2.3、第三步构建Makefile

需要安装环境

yum install gcc gcc-c++

yum install -y ncurses-devel

yum install -y cmake

yum install -y libaio

yum install -y bison ***

3.2.4、cmake 配置,根据需要直接执行下面的部分,

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.7  -DMYSQL_DATADIR=/usr/local/mysql5.7/data  -DDEFAULT_CHARSET=utf8  -DDEFAULT_COLLATION=utf8_general_ci  -DEXTRA_CHARSETS=all  -DENABLED_LOCAL_INFILE=1  -DWITH_BOOST=/usr/local/boost

*** 重新运行配置需要删除CMakeCache.txt

说明:

#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.5 #安装路径
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk
-DWITH_MYISAM_STORAGE_ENGINE=1
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_MEMORY_STORAGE_ENGINE=1
-DWITH_READLINE=1
-DENABLED_LOCAL_INFILE=1
-DMYSQL_DATADIR=/var/mysql/data #数据安装路径
-DMYSQL_USER=mysql
-DSYSCONFDIR=/etc # mysql配置文件 my.cnf的存放地址,默认为/etc下
-DMYSQL_TCP_PORT=3306 # 数据库服务器监听端口,默认为3306
-DWITH_SSL=yes # 支持 SSL
-DMYSQL_USER=mysql # 默认为mysql

//下面3个是数据库编码设置
-DEXTRA_CHARSETS=all # 安装所有扩展字符集,默认为all
-DDEFAULT_CHARSET=utf8 # 使用 utf8 字符
-DDEFAULT_COLLATION=utf8_general_ci # 校验字符

//下面5个是数据库存储引擎设在
-DWITH_MYISAM_STORAGE_ENGINE=1 # 安装 myisam 存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 # 安装 innodb 存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 # 安装 archive 存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 # 安装 blackhole 存储引擎
-DWITH_PARTITION_STORAGE_ENGINE=1 # 安装数据库分区
//在这个过程中,可能会因为缺少某些包而报错,参照报错信息用YUM安装相关的包,然后删除Makefile.txt,重新构建。这个步骤在错误信息中有详细说明

3.2.5、编译

make
make install 

3.2.6、安装

编译完成后和二进制文件安装配置一样

附录:遇到的问题

1、源码安装

mysql5.7安装报错 CMake Error at cmake/boost.cmake:81(MESSAGE)

错误:

CMake Error at cmake/boost.cmake:81 (MESSAGE):
You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BOOST=

This CMake script will look for boost in . If it is not there,
it will download and unpack it (in that directory) for you.

If you are inside a firewall, you may need to use an http proxy:

export http_proxy=http://example.com:80

解决方案:

1、在/usr/local/boost下创建boost文件夹

mkdir -p /usr/local/boost

2、进入这个文件夹然后下载boost

wget http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz  --no-check-certificate

3、解压,并删除压缩包

tar -xzvf boost_1_59_0.tar.gz
rm -rf boost_1_59_0.tar.gz

4、继续cmake,添加下面内容

-DWITH_BOOST=/usr/local/boost

2、二进制文件安装

./bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory

如果安装mysql出现了以上的报错信息.这是却少numactl这个时候如果是Centos就yum -y install numactl就可以解决这个问题了,ubuntu的话就sudo apt-get install numactl就可以解决这个问题了

猜你喜欢

转载自blog.csdn.net/masicro/article/details/89191424