网硕互联技术交流社区

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3380|回复: 0

CentOS7.4 源码安装MySQL8.0(理论7.X都可以安装)

[复制链接]

4

主题

4

帖子

42

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
42
发表于 2018-5-31 14:23:41 | 显示全部楼层 |阅读模式
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.安装依赖
  1. yum -y install wget  cmake gcc gcc-c++ ncurses  ncurses-devel  libaio-devel  openssl openssl-devel
复制代码


  2.下载源码包


  1. wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-boost-8.0.11.tar.gz      (此版本带有boost)
复制代码

  3.创建mysql用户


  1. groupadd mysql
  2. useradd -r -g mysql -s /bin/false mysql
复制代码

  4.创建安装目录和数据目录


  1. mkdir -p /usr/local/mysql
  2. mkdir -p /data/mysql
复制代码

三.安装MySQL8.0.11
  1.解压源码包
  1. tar -zxf mysql-boost-8.0.11.tar.gz -C /usr/local
复制代码


  2.编译&安装
  1. cd /usr/local/mysql-8.0.11
  2. 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
  3. make  && make install
复制代码


  3.配置my.cnf文件

  1. cat /etc/my.cnf
复制代码
  1. [mysqld]
  2. server-id=1
  3. port=3306
  4. max_connections=3000
  5. basedir=/usr/local/mysql
  6. datadir=/data/mysql
  7. #datadir=/var/lib/mysql
  8. #socket=/var/lib/mysql/mysql.sock
  9. # Disabling symbolic-links is recommended to prevent assorted security risks
  10. #symbolic-links=0
  11. # Settings user and group are ignored when systemd is used.
  12. # If you need to run mysqld under a different user or group,
  13. # customize your systemd unit file for mariadb according to the
  14. # instructions in http://fedoraproject.org/wiki/Systemd

  15. [mysqld_safe]
  16. #log-error=/var/log/mariadb/mariadb.log
  17. #pid-file=/var/run/mariadb/mariadb.pid

  18. #
  19. # include all files from the config directory
  20. #
  21. !includedir /etc/my.cnf.d
复制代码

    ##请根据实际情况添加参数

  4.目录权限修改
  1. chown -R mysql:mysql /usr/local/mysql
  2. chown -R mysql:mysql /data/mysql
  3. chmod 755 /usr/local/mysql -R
  4. chmod 755 /data/mysql -R
复制代码


  5.初始化,进入/usr/local/mysql 目录后执行:
  1. bin/mysqld --initialize --user=mysql --datadir=/data/mysql/
  2. bin/mysql_ssl_rsa_setup
复制代码


  6.启动mysql
  1. bin/mysqld_safe --user=mysql &
复制代码


  7.修改账号密码
  1. bin/mysql  -uroot -p
  2. mysql> alter user 'root'@'localhost' identified by "123456";
  3. mysql> show databases;
  4.         +--------------------+
  5.         | Database           |
  6.         +--------------------+
  7.         | information_schema |
  8.         | mysql              |
  9.         | performance_schema |
  10.         | sys                |
  11.         +--------------------+
  12.        4 rows in set (0.00 sec)
复制代码


##添加远程账号
  1. mysql> create user root@'%' identified by '123456';
  2. Query OK, 0 rows affected (0.08 sec)
  3. mysql> grant all privileges on *.* to root@'%';
  4. Query OK, 0 rows affected (0.04 sec)
  5. mysql> flush privileges;
  6. Query OK, 0 rows affected (0.01 sec)
复制代码

8.创建软链接
  1. ln -s /usr/local/mysql/bin/* /usr/local/bin/
  2. mysql -h 127.0.0.1 -P 3306 -uroot -p123456 -e "select version();"
  3. mysql: [Warning] Using a password on the command line interface can be insecure.
  4.     +-----------+
  5.     | version() |
  6.     +-----------+
  7.     | 8.0.11    |
  8.     +-----------+
复制代码



  9.添加到启动
  1. 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.然后依次输入
  1. ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER; #修改加密规则 (必写)
  2. ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; #更新用户密码
  3. ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER; #修改加密规则 (必写)
  4. ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; #更新用户密码
  5. FLUSH PRIVILEGES; #刷新权限(不输入也可以)
复制代码
    '123456' :为root用户密码

2.3.输入刚刚修改的密码,再次测试连接,搞定


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|网硕互联技术交流社区

GMT+8, 2024-5-3 09:43 , Processed in 0.271556 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表