|
CentOS7.4 源码安装MySQL8.0
MySQL 8 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能!
以下为本人2018.4.23日安装过程的记录。整个过程大概需要一个小时,make && make install过程需要的时间较长。
一.环境
CentOS7.4 64位 最小化安装
二.准备工作
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 -C /usr/local
复制代码
2.编译&安装
- cd /usr/local/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=/usr/local/mysql-8.0.11/boost
- make && make install
复制代码
3.配置my.cnf文件
- [mysqld]
- server-id=1
- port=3306
- max_connections=3000
- basedir=/usr/local/mysql
- datadir=/data/mysql
- #datadir=/var/lib/mysql
- #socket=/var/lib/mysql/mysql.sock
- # Disabling symbolic-links is recommended to prevent assorted security risks
- #symbolic-links=0
- # Settings user and group are ignored when systemd is used.
- # If you need to run mysqld under a different user or group,
- # customize your systemd unit file for mariadb according to the
- # instructions in http://fedoraproject.org/wiki/Systemd
- [mysqld_safe]
- #log-error=/var/log/mariadb/mariadb.log
- #pid-file=/var/run/mariadb/mariadb.pid
- #
- # include all files from the config directory
- #
- !includedir /etc/my.cnf.d
复制代码
##请根据实际情况添加参数
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.初始化,进入/usr/local/mysql 目录后执行:
- bin/mysqld --initialize --user=mysql --datadir=/data/mysql/
- bin/mysql_ssl_rsa_setup
复制代码
6.启动mysql
- bin/mysqld_safe --user=mysql &
复制代码
7.修改账号密码
- bin/mysql -uroot -p
- mysql> alter user 'root'@'localhost' identified by "123456";
- mysql> show databases;
- +--------------------+
- | Database |
- +--------------------+
- | information_schema |
- | mysql |
- | performance_schema |
- | sys |
- +--------------------+
- 4 rows in set (0.00 sec)
复制代码
##添加远程账号
- mysql> create user root@'%' identified by '123456';
- Query OK, 0 rows affected (0.08 sec)
- 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)
复制代码
8.创建软链接
- ln -s /usr/local/mysql/bin/* /usr/local/bin/
- mysql -h 127.0.0.1 -P 3306 -uroot -p123456 -e "select version();"
- mysql: [Warning] Using a password on the command line interface can be insecure.
- +-----------+
- | version() |
- +-----------+
- | 8.0.11 |
- +-----------+
复制代码
9.添加到启动
- cp support-files/mysql.server /etc/init.d/mysql.server
复制代码
到此配置已经完成,但远程连接数据库时,发现会出现错误:1251- Client does not support authentication protocol
原因:mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password
解决办法:
1.升级navicat驱动;(暂时无相关资料,可能要钱,不推荐)
2.把mysql用户登录密码加密规则还原成mysql_native_password.
2.1.打开命令行小黑屏,进入MySQL的bin目录,然后输入mysql -u root -p,输入密码
2.2.然后依次输入
- ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER; #修改加密规则 (必写)
- ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; #更新用户密码
- ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER; #修改加密规则 (必写)
- ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; #更新用户密码
- FLUSH PRIVILEGES; #刷新权限(不输入也可以)
复制代码 '123456' :为root用户密码
2.3.输入刚刚修改的密码,再次测试连接,搞定
|
|