CentOS MySQL YUM 安装详细教程
在CentOS系统上,使用yum包管理器可以方便地安装MySQL数据库,以下是详细的安装步骤和相关配置方法。
环境准备
确保你的CentOS版本支持MySQL,推荐使用CentOS 7及其以上版本,需要root权限进行操作。
卸载MariaDB(可选)
由于CentOS 7默认安装了MariaDB,因此需要先移除MariaDB。
1、检查MariaDB是否已安装:
```bash
ps ajx | grep mariadb
```
2、停止MariaDB服务:
```bash
systemctl stop mariadb.service
```
3、卸载MariaDB:
```bash
yum remove mariadblibs y
```
4、检查系统中的MySQL/MariaDB相关安装包并卸载:
```bash
rpm qa | grep mariadb | xargs yum remove y nogpgcheck
```
5、备份数据:
```bash
mkdir /tmp/mariadb_backup
cp r /etc/my.cnf /var/lib/mysql/* /tmp/mariadb_backup
```
添加MySQL Yum源
下载并安装MySQL官方Yum源。
1、下载MySQL Yum源安装包:
```bash
wget HTTPS://dev.mysql.com/get/mysql80communityreleaseel73.noARCh.rpm
```
2、安装MySQL Yum源:
```bash
sudo rpm Uvh mysql80communityreleaseel73.noarch.rpm
```
3、验证Yum源是否添加成功:
```bash
yum repolist enabled | grep mysql.
```
安装MySQL服务器及客户端
使用yum命令安装MySQL服务器及相关组件。
1、安装MySQL服务器:
```bash
yum install mysqlserver y
```
2、启动MySQL服务:
```bash
systemctl start mysqld
```
3、查看MySQL服务状态:
```bash
systemctl status mysqld
```
4、查看初始随机密码:
```bash
grep 'temporary password' /var/log/mysqld.log
```
配置MySQL
完成基本配置以确保MySQL正常运行。
1、登录MySQL:
```bash
mysql u root p
输入初始密码
```
2、修改初始密码:
```sql
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
```
3、策略修改:
如果密码设置不成功,可以修改策略:
```sql
SET GLOBAL validate_password.policy = LOW;
SET GLOBAL validate_password.length = 4;
```
4、刷新权限:
```sql
FLUSH PRIVILEGES;
```
5、退出MySQL:
```sql
exit;
```
6、开启远程访问:
```sql
USE mysql;
UPDATE user SET host = '%' WHERE user = 'root';
FLUSH PRIVILEGES;
```
7、重启MySQL服务:
```bash
systemctl restart mysqld
```
8、测试远程连接:
使用其他设备或虚拟机尝试连接MySQL服务器。
常见问题与解答 (FAQs)
问题1:如何查看MySQL服务是否启动成功?
答:可以通过以下命令查看MySQL服务的状态:
systemctl status mysqld
如果显示“active (running)”则表示MySQL服务已经成功启动。
问题2:忘记MySQL的root密码怎么办?
答:可以通过以下步骤重置root密码:
1、停止MySQL服务:
```bash
systemctl stop mysqld
```
2、启动MySQL服务到安全模式:
```bash
mysqld_safe skipgranttables &
```
3、登录MySQL,不需要密码:
```bash
mysql u root
```
4、更新root用户的密码:
```sql
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
```
5、退出MySQL并重新启动服务:
```bash
exit;
systemctl start mysqld
```