该教程是使用的 CentOS 8.2 安装 mysql。
1.删除原有mysql
rpm -qa|grep mariadb
如果存在在mariadb,卸载命令如下:
#rpm -e --nodeps是强制卸载指令 后面是查出的依赖名称
rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64
全部卸载完输入以下指令,输出无则已卸载干净
rpm -qa|grep mysql
2.添加 MySQL Yum Repository
MySQL 官方提供了 Yum 仓库,可以通过它来安装 MySQL。首先,下载 MySQL 的 Yum Repository
wget https://dev.mysql.com/get/mysql80-community-release-el8-3.noarch.rpm
响应内容:
然后,添加下载的 repository 到你的系统中
sudo rpm -ivh mysql80-community-release-el8-3.noarch.rpm
响应内容:
3.安装 MySQL
现在你可以通过以下命令安装 MySQL
sudo dnf install mysql-server
响应内容:
输入 y 确认
3.1.报错
如出现 :更新或下载时报错:为仓库 ‘appstream‘ 下载元数据失败 : Cannot prepare internal mirrorlist
原因是 CentOS Linux 8已于 2021-12-31日停止更新和维护了,CentOS团队从官方镜像中移除CentOS 8的包,所以在使用yum源安装或更新会报上述失败错误。
进入仓库源文件夹下
cd /etc/yum.repos.d/
修改镜像配置
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
清空原有缓存,并重新生成
yum clean all && yum makecache
更新软件包
yum update -y
操作完成,可以继续执行 sudo dnf install mysql-server 指令。
4.启动 MySQL 服务
安装完成后,启动 MySQL 服务,并设置为开机自启
sudo systemctl start mysqld
sudo systemctl enable mysqld
查看mysql运行状态
systemctl status mysqld.service
查看mysql进程
ps -ef|grep mysqld
响应如下:
5.设置mysql
输入指令配置mysql基本的安全设置
mysql_secure_installation
5.1.密码验证组件
输入 y 确定启用这个密码验证组件。
5.2.密码策略
可输入(0,1,2)
-
0 = LOW: 密码长度至少为8个字符。这是最宽松的策略,仅要求密码达到一定的长度,但对字符类型没有特殊要求。
-
1 = MEDIUM: 在LOW的基础上增加了更多要求,密码长度至少为8个字符,并且必须包含数字、大小写字母以及特殊字符。这比LOW级别提供了更强的安全性。
-
2 = STRONG: 在MEDIUM的基础上进一步加强了要求,除了所有MEDIUM的要求外,还需要密码通过字典文件检查,这意味着密码不能是常见的单词或简单组合,有助于防止使用容易被猜到的密码
输入完成后可输入创建密码,和再次确认密码。
响应内容:
密码策略成功通过会回显示密码强度,上图显示的强度是100 ,去人是否使用此密码
输入 y 确认。
5.3.移除匿名用户
继续输入 y 同意移除这些匿名用户。
5.4.是否禁用root远程访问
询问您是否要禁止 root 用户从远程主机登录 MySQL 数据库。如果需禁用远程访问root只能本地访问则输入y,需要远程输入随意字母。
5.5.是否删除test
询问您是否要删除 MySQL 默认提供的名为 'test' 的数据库及其对应的访问权限,需要删除输入y,不需随意。
5.6.是否重新加载权限
询问是否重新加载权限,输入 y
至此设置完成。
5.7.设置远程权限
如果上面都操作完成后还是无法远程访问 mysql 可以按下面步骤操作。
5.7.1.登录mysql
输入以下指令后,输入刚刚设置的密码即可登录。
mysql -u root -p
响应内容:
5.7.2设置
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
CREATE USER 'root'@'%' IDENTIFIED BY '你的新密码';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
- ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码'; #如果需要更改root密码的话
- CREATE USER 'root'@'%' IDENTIFIED BY '你的新密码'; #创建一个可以从任何地方登录的root用户
- GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; #赋予所有权限
- FLUSH PRIVILEGES; #刷新权限使其生效
使用 Navicat Premium 可成功远程访问mysql。