1.安装依赖
yum -y install wget cmake gcc gcc-c++ ncurses ncurses-devel libaio-devel openssl openssl-devel
2.下载源码包
wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-boost-8.0.11.tar.gz (此版本带有boost)
3.创建mysql用户
groupadd mysql useradd -r -g mysql -s /bin/false mysql
4.创建安装目录和数据目录
mkdir -p /usr/local/mysql mkdir -p /data/mysql
三.安装MySQL8.0.11
1.解压源码包
tar -zxf mysql-boost-8.0.11.tar.gz
2.编译&安装
cd mysql-8.0.11 cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DMYSQL_TCP_PORT=3306 -DWITH_BOOST=./boost make && make install
此处安装1小时,源码安装
3.配置my.cnf文件
vim /etc/my.cnf
[client] port = 3306 socket = /data/mysql/mysql.sock [mysqld_multi] mysqld = /usr/bin/mysqld_safe mysqladmin = /usr/bin/mysqladmin log = /var/log/mysqld_multi.err [mysqldump] quick max_allowed_packet = 16M
[mysql] no-auto-rehash [myisamchk] key_buffer_size = 20M sort_buffer_size = 20M read_buffer = 2M write_buffer = 2M [mysqlhotcopy] interactive-timeout [mysqld] port = 3306 socket = /data/mysql/mysql.sock basedir=/usr/local/mysql key_buffer_size = 16M max_allowed_packet = 1M table_open_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M log-bin-trust-function-creators = 1 expire_logs_days = 1 max_connections = 600 skip-external-locking skip-name-resolve datadir=/data/mysql character_set_server = utf8 log-bin = mysql-bin max_allowed_packet=64M # Mandatory Settings server-id= 1 binlog_format=ROW default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
4.目录权限修改
chown -R mysql:mysql /usr/local/mysql chown -R mysql:mysql /data/mysql chmod 755 /usr/local/mysql -R chmod 755 /data/mysql -R
5.初始化
cd /usr/local/mysql/bin
./mysqld --initialize --user=mysql --datadir=/data/mysql/ ./mysql_ssl_rsa_setup
6.启动mysql
./mysqld_safe --user=mysql --skip-grant-tables &
./mysql
mysql> flush privileges; 因为前面带了--skip-grant-tables,这一步很重要. Query OK, 0 rows affected (0.04 sec)
mysql> alter user 'root'@'localhost' identified by "123456"; Query OK, 0 rows affected (0.07 sec)
mysql> create user root@'%' identified WITH mysql_native_password by '123456'; 8.1不加WITH mysql_native_password,windows客户端无法登陆.
mysql> grant all privileges on *.* to root@'%'; Query OK, 0 rows affected (0.04 sec)
mysql> flush privileges; Query OK, 0 rows affected (0.01 sec)
退出mysql,重启mysqld,不要带--skip-grant-tables