1.安装所需依赖包
1
| yum -y install gcc gcc-c++ ncurses ncurses-devel cmake bison bison-devel
|
2.下载源码包
可以去官网下载,也可以从百度网盘 ,密码:7u29,下载。
注意: mysql 5.7 需要boost 1.59
及以上版本,可以在下载MySQL源码包时选择以包含boost版本。
3.新建mysql用户及用户组
1 2
| groupadd -r mysql useradd -r -g mysql mysql
|
4.新建MySQL数据库数据文件目录
1 2 3
| mkdir -p /home/mysql/data mkdir -p /home/mysql/logs mkdir -p /home/mysql/temp
|
5.预编译
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/home/mysql/data \ -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ -DWITH_BOOST=./bootst/boost_1_59_0 \ -DSYSCONFDIR=/etc \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DWITH_FEDERATED_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DENABLED_LOCAL_INFILE=1 \ -DENABLE_DTRACE=0 \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_EMBEDDED_SERVER=1
|
6.编译安装
1 2 3
| make make install make clean
|
7.设置开机自启动
1 2 3 4
| cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld chmod +x /etc/init.d/mysqld chkconfig --add mysqld chkconfig mysqld on
|
8.修改MySQL的可执行目录
1 2
| chown -Rf mysql:mysql /usr/local/mysql chown -Rf mysql:mysql /home/mysql
|
9.修改MySQL配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
| vi /etc/my.cnf
#修改以下内容 [mysqld] character-set-server = utf8 collation-server = utf8_general_ci
skip-external-locking skip-name-resolve
user = mysql port = 3306
basedir = /usr/local/mysql datadir = /home/mysql/data tmpdir = /home/mysql/temp # server_id = ..... socket = /usr/local/mysql/mysql.sock log-error = /home/mysql/logs/mysql_error.log pid-file = /home/mysql/data/mysql.pid
open_files_limit = 10240
back_log = 600 max_connections=500 max_connect_errors = 6000 wait_timeout=605800
#open_tables = 600 #table_cache = 650 #opened_tables = 630
max_allowed_packet = 32M
sort_buffer_size = 4M join_buffer_size = 4M thread_cache_size = 300 query_cache_type = 1 query_cache_size = 256M query_cache_limit = 2M query_cache_min_res_unit = 16k
tmp_table_size = 256M max_heap_table_size = 256M
key_buffer_size = 256M read_buffer_size = 1M read_rnd_buffer_size = 16M bulk_insert_buffer_size = 64M
lower_case_table_names=1
default-storage-engine = INNODB
innodb_buffer_pool_size = 1G innodb_log_buffer_size = 32M innodb_log_file_size = 128M innodb_flush_method = O_DIRECT
##################### long_query_time= 2 slow-query-log = on slow-query-log-file = /home/mysql/logs/mysql-slow.log
[mysqldump] quick max_allowed_packet = 32M
[mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
|
10.添加环境变量
1 2 3 4 5 6 7
| vi /etc/profile
#末尾添加以下内容 #mysql env export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib
source /etc/profile
|
11.初始化数据库
1
| mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql/data
|
12.启动数据库
1 2
| systemctl start mysqld systemctl status mysqld
|
13.设置MySQL用户root密码
1 2 3 4 5
| #首次登陆时输入以下命令后敲回车可以直接进入数据库 mysql -u root -p #输入以下命令修改root用户密码 ALTER USER 'root'@‘localhost’ IDENTIFIED BY 'xxxxxxxx'; FLUSH PRIVILEGES;
|
注意: MySQL
5.7版本增加了很多安全性的更新,如果密码等级设置为MEDIUM级别,那么用户密码需要:密码的最小长度默认为8,至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符。
14.添加一个可以远程访问的普通用户
1 2
| create USER 'test'@'%' IDENTIFIED BY '########'; FLUSH PRIVILEGES;
|
注意:
添加了数据库用户后还是无法远程访问的话,需要检查CentOS 7防火墙是否关闭:
1 2
| check firewalld.service systemctl stop firewalld.service
|
参考文档: 在CentOS7上编译安装MySQL
5.7.14步骤详解 CentOS
7 编译安装mysql 5.7 MySQL5.7修改默认root密码 CentOS7
防火墙关闭