CentOS 8 安装 MySQL 5.7 或 MySQL 8

CentOS 8 默认是可以安装 MySQL 8。



https://dev.mysql.com/downloads/repo/yum/

https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/


第一步,添加源文件


手动添加文件 /etc/yum.repos.d/mysql-community.repo,然后加入下面内容到文件里。


安装 MySQL 8.0

[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/6/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql


安装 MySQL5.7

[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql


检查源

yum repolist enabled | grep mysql
dnf repolist enabled | grep mysql


第二步,安装 MySQL


关闭默认 MySQL 模块

sudo yum module disable mysql
sudo dnf module disable mysql


安装

sudo dnf install mysql-community-server
sudo dnf install mysql-community-server --nobest


如果提示

Curl error (37): Couldn't read a file:// file for file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql [Couldn't open file /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql]

解决方法

第一种方案,设置gpgcheck为0,就是不需要检查gpgkey。

# enable to use MySQL 5.6
[mysql56-community]
name=MySQL 5.6 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/6/$basearch/
enabled=1
gpgcheck=0
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

第二种方案 下载gpgkey

//下载RPM-GPG-KEY-mysql
wget http://repo.mysql.com/RPM-GPG-KEY-mysql -O /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql


第三步,修改 root 密码

官方文档提示 MySQL 5.7 和更高版本不要使用 mysql_secure_installation

Do not run mysql_secure_installation after an installation of MySQL 5.7 or higher, as the function of the program has already been performed by the Yum repository installation.


查看临时密码

grep 'temporary password' /var/log/mysqld.log 


使用临时密码登录并修改密码

shell> mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';



第四步,修改 MySQL 编码


$ mysql> show variables like 'character%';


修改 /etc/my.cnf 在 [mysqld]  下,加入 character_set_server=utf8,重启 MySQL 生效。



备注:

1,在CentOS 8 中使用 MySQL 5.7 有一个问题,就是MySQL无法自动在 /var/run 中创建 /var/run/mysqld 。网上看到有人说,把mysql.pid 设置到 /var/lib/mysql 中,实际上这样设置以后,systemctl restart mysql 无法正常工作。最后,还是退回使用 MySQL 5.6。 暂时还是不能在 CentOS 8中使用 MySQL 5.7,暂时乖乖的使用 MySQL 5.6吧。这个问题耗费了我 6个小时左右。部分网站也6小时左右无法正常打开。


2,有些主机商默认开启了SELinux,一定要关闭。

2.1 查看SELinux状态:

/usr/sbin/sestatus -v   # 如果SELinux status参数为enabled即为开启状态

2.2 永久关闭 SELinux,修改/etc/selinux/config 文件,将SELINUX=enforcing改为SELINUX=disabled。重启机器即可


3, 设置默认MySQL默认编码

mysql>status 查看默认编码,如果characterset是latin1,打开 /etc/my.cnf,在 [mysqld] 段增加下面的代码,然后重启characterset即可变成utf8

character-set-server=utf8
collation-server=utf8_general_ci



修改时间 2021-07-13

声明:本站所有文章和图片,如无特殊说明,均为原创发布。商业转载请联系作者获得授权,非商业转载请注明出处。
随机推荐
github Support for password authentication was removed
JavaScript 事件
JavaScript Set 详解
WordPress 引入自定义 JavaScript 文件
ES6 Promise 和 async/await 教程
wp_signon() 自定义用户登录函数
macOS 使用 crontab 定时任务
Node.js 数据库模块 mysql2