MySQL在CentOS 7上的安装与配置
MySQL是一个广泛使用的关系型数据库管理系统,而CentOS是一种基于Linux的操作系统,本文将详细介绍如何在CentOS 7上安装和配置MySQL,确保其正常运行并满足基本需求。
环境准备
在进行MySQL安装之前,需要确保系统已经安装了必要的软件包,并且没有其他MySQL版本在运行,可以通过以下命令检查:
ps aux | grep mysqld rpm qa | grep mariadb
如果发现有旧版本的MySQL或MariaDB(MySQL的一个分支)在运行,可以通过以下命令卸载:
yum remove mariadblibs yum remove mysql
三、下载并安装MySQL Yum Repository
1、下载MySQL Yum Repository
使用wget
命令从MySQL官方网站下载Yum Repository配置文件:
```bash
wget HTTPS://dev.mysql.com/get/mysql80communityreleaseel73.noarch.rpm
```
2、安装Yum Repository
使用yum localinstall
命令安装下载的RPM文件:
```bash
yum localinstall mysql80communityreleaseel73.noarch.rpm
```
安装MySQL服务器
1、安装MySQL服务器
使用yum install
命令安装MySQL服务器及其依赖包:
```bash
yum install mysqlcommunityserver
```
2、启动MySQL服务
安装完成后,使用systemctl
命令启动MySQL服务,并设置开机自启:
```bash
systemctl start mysqld
systemctl enable mysqld
```
3、查看MySQL服务状态
使用以下命令查看MySQL服务的运行状态:
```bash
systemctl status mysqld
```
初次配置MySQL
1、获取临时密码
MySQL安装完成后,会生成一个临时密码,通过查看日志文件获取该密码:
```bash
grep 'temporary password' /var/log/mysqld.log
```
2、登录MySQL
使用获取到的临时密码登录MySQL:
```bash
mysql u root p
```
3、修改初始密码
登录后,立即修改初始密码,注意,新密码必须包含大小写字母、数字和特殊字符,并且长度至少为8位:
```sql
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword!';
```
配置远程访问
1、授权远程访问
为了允许远程主机连接到MySQL服务器,需要进行以下授权操作:
```sql
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
```
2、配置防火墙
开放MySQL默认端口3306:
```bash
firewallcmd zone=public addport=3306/tcp permanent
firewallcmd reload
```
配置字符集
1、修改配置文件
编辑MySQL配置文件my.cnf
,添加或修改以下内容:
```ini
[client]
defaultcharacterset=utf8mb4
[mysql]
defaultcharacterset=utf8mb4
[mysqld]
charactersetserver=utf8mb4
defaultstorageengine=INNODB
```
2、重启MySQL服务
保存配置文件后,重启MySQL服务使配置生效:
```bash
systemctl restart mysqld
```
常见问题及解决方案(FAQs)
1、如何重置MySQL的root密码?
如果忘记了MySQL的root密码,可以通过以下步骤重置:
1. 停止MySQL服务:
```bash
systemctl stop mysqld
```
2. 以不验证用户身份的方式启动MySQL:
```bash
mysqld_safe skipgranttables &
```
3. 登录MySQL,不需要密码:
```bash
mysql u root
```
4. 修改root用户的密码:
```sql
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
FLUSH PRIVILEGES;
```
5. 重新启动MySQL服务:
```bash
systemctl start mysqld
```
2、如何导入和导出数据库?
使用mysqldump
工具可以方便地导入和导出数据库:
导出数据库:
```bash
mysqldump u root p database_name > backup.sql
```
导入数据库:
```bash
mysql u root p database_name < backup.sql
```