在CentOS系统上安装和配置MySQL数据库是一个常见的任务,无论是对于开发、测试还是生产环境,下面将详细介绍如何在CentOS 7和8系统上安装和配置MySQL,包括从准备阶段到最终的启动和安全配置步骤。
准备工作
1、检查系统版本:确保你的CentOS系统是7或8版本,可以通过以下命令查看:
```bash
cat /etc/redhatrelease
```
2、更新系统软件包:在安装MySQL之前,建议先更新系统上的软件包,以确保你使用的是最新版本的软件包。
```bash
sudo yum update y # 对于CentOS 7
sudo dnf update y # 对于CentOS 8
```
3、卸载MariaDB:由于CentOS默认包含MariaDB,因此需要先将其卸载。
```bash
sudo yum remove mariadb mariadbserver y # 对于CentOS 7
sudo dnf remove mariadb mariadbserver y # 对于CentOS 8
```
下载并安装MySQL
CentOS 7
1、添加MySQL Yum仓库:下载并安装官方的MySQL Yum仓库配置包。
```bash
wget HTTPS://dev.mysql.com/get/mysql80communityreleaseel73.noarch.rpm
sudo yum localinstall mysql80communityreleaseel73.noarch.rpm y
```
2、安装MySQL服务器:使用Yum包管理器安装MySQL服务器。
```bash
sudo yum install mysqlcommunityserver y
```
CentOS 8
1、添加MySQL Yum仓库:下载并安装官方的MySQL Yum仓库配置包。
```bash
wget https://dev.mysql.com/get/mysql80communityreleaseel83.noarch.rpm
sudo dnf localinstall mysql80communityreleaseel83.noarch.rpm y
```
2、禁用系统内置的MySQL模块(如果存在):
```bash
sudo dnf module disable mysql y
```
3、安装MySQL服务器:使用Dnf包管理器安装MySQL服务器。
```bash
sudo dnf install mysqlserver y
```
启动并配置MySQL
1、启动MySQL服务:启动MySQL服务并设置为开机自启。
```bash
sudo systemctl start mysqld
sudo systemctl enable mysqld
```
2、获取临时root密码:MySQL 8.0在首次启动时会生成一个随机的临时root密码,可以在日志文件中找到该密码。
```bash
sudo grep 'temporary password' /var/log/mysqld.log
```
3、登录MySQL并修改root密码:使用临时密码登录MySQL,然后修改root用户的密码。
```bash
mysql u root p
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
```
4、运行安全脚本:运行MySQL的安全脚本来设置一些基本的安全选项。
```bash
sudo mysql_secure_installation
```
按照提示完成以下操作:
设置强root密码。
删除匿名用户。
禁止远程root登录。
移除测试数据库。
重新加载权限表使更改生效。
配置文件调整(可选)
根据需求,可以编辑MySQL的配置文件/etc/my.cnf
进行进一步的配置优化,可以调整字符集设置、连接数限制等,以下是一个简单的示例:
[mysqld] charactersetserver=utf8mb4 defaultstorageengine=InnoDB max_connections=500
常见问题解答(FAQs)
1、问题1:如何检查MySQL服务状态?
解答:使用以下命令检查MySQL服务的状态:
```bash
sudo systemctl status mysqld
```
如果MySQL正在运行,你应该会看到“active (running)”的状态信息。
2、问题2:忘记MySQL的root密码怎么办?
解答:如果你忘记了MySQL的root密码,可以通过以下步骤重置:
1. 停止MySQL服务:
```bash
sudo systemctl stop mysqld
```
2. 以不检查权限的方式启动MySQL:
```bash
sudo mysqld_safe skipgranttables &
```
3. 登录MySQL并更改root密码:
```bash
mysql u root mysql
UPDATE user SET authentication_string=PASSWORD('新密码') WHERE User='root';
FLUSH PRIVILEGES;
EXIT;
```
4. 重新启动MySQL服务:
```bash
sudo systemctl start mysqld
```
5. 使用新密码登录MySQL验证是否成功。