目录索引
1 写在前面
因为工作原因,要在CentOS8下安装MySQL,但由于安装的过程比较曲折,查找的资料也莫衷一是,再加上第一次接触在Linux下安装数据库,所以记录下来,以备不时之需。
2 安装步骤
① 下载源和安装MySQL
如果没有wget命令先执行:
yum -y install wget
下载MySQL的rpm:
wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
下载完毕之后,安装MySQL源
yum -y localinstall mysql80-community-release-el8-1.noarch.rpm
或者
rpm -ivh mysql80-community-release-el8-1.noarch.rpm
安装MySQL
yum -y install mysql-community-server
或者
yum -y install mysql-server
如果报错
No match for argument: mysql-community-server
Error: Unable to find a match: mysql-community-server
执行以下命令:
yum module disable mysql
② 先不要启动MySQL,配置my.cnf --大小写敏感(如果需要的话)
vim /etc/my.cnf
[mysqld]
lower_case_table_names=1
③ 启动Mysql服务
systemctl start mysqld
service mysqld status ---查看启动是否成功
④ 设置开机启动
systemctl enable mysqld
systemctl daemon-reload
⑤ 登录mysql
mysql -u root -p ---首次进入不需要密码,直接Enter就好了
⑥ 修改root密码
mysql> use mysql;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
mysql> FLUSH PRIVILEGES; --刷新立即生效
123456
为密码,可设置任何值。
⑦ 在数据内设置允许远程访问
切换数据库:
mysql> use mysql;
修改Host为 %
:
mysql> update user set host = '%' where user = 'root';
执行完后刷新立即生效:
mysql> FLUSH PRIVILEGES;
⑧ 如果仍然无法远程访问,开放CentOS的相关端口
检查防火墙状态
systemctl status firewalld
centos 7.5以后的防火墙是firewalld服务而不是传统的iptables了
“active(running)”
表示开启中
查看防火墙已开端口
firewall-cmd --list-ports
防火墙添加端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent // 永久生效,没有此参数重启后失效
新增完成后,重启防火墙
firewall-cmd --reload
也可以直接进入服务器的目录,在根目录下找到firewalld的文件夹,然后找到public.xml
文件打开
/etc/filewalld/zones
如下:
到此,MySQL应该就可以正常的使用了。
3 参考资料
Centos8上yum安装mysql8
CentOS8系统下安装MySQL8.x遇到的坑
解决centos的mysql服务3306端口无法远程连接10038问题