CentOS 7 安装与配置 MySQL
在 CentOS 7 上安装和配置 MySQL 是一个相对简单但需要一定步骤的过程,下面将详细介绍如何在 CentOS 7 上安装 MySQL,并进行基本的配置。
一、卸载内置 MariaDB
CentOS 7 默认安装了 MariaDB,这是 MySQL 的一个分支,为了安装 MySQL,我们首先需要卸载 MariaDB。
sudo yum remove mariadb mariadbserver mariadblibs y
二、下载并安装 MySQL Yum Repository
1、安装 wget 工具(如果未安装):
sudo yum install wget y
2、下载 MySQL Yum Repository:
wget https://dev.mysql.com/get/mysql57communityreleaseel710.noarch.rpm
3、安装 MySQL Yum Repository:
sudo rpm Uvh mysql57communityreleaseel710.noarch.rpm
4、查看可用的 MySQL 版本:
yum repolist all | grep mysql
三、安装 MySQL
1、安装 MySQL 服务器:
sudo yum install mysqlcommunityserver y
2、启动 MySQL 服务:
sudo systemctl start mysqld
3、查看 MySQL 运行状态:
sudo systemctl status mysqld
四、获取临时密码并登录 MySQL
1、获取临时密码:
sudo grep 'temporary password' /var/log/mysqld.log
2、使用临时密码登录 MySQL:
mysql u root p
3、修改 root 用户密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword!';
五、配置 MySQL
1、设置字符集为 utf8:
编辑/etc/my.cnf
文件,添加以下内容:
[client] defaultcharacterset=utf8 [mysql] defaultcharacterset=utf8 [mysqld] charactersetserver=utf8 collationserver=utf8_general_ci
2、重启 MySQL 服务:
sudo systemctl restart mysqld
六、开放远程访问
1、授权远程访问:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'NewPassword!' WITH GRANT OPTION; FLUSH PRIVILEGES;
2、开放防火墙端口:
sudo firewallcmd zone=public addport=3306/tcp permanent sudo firewallcmd reload
七、设置开机自启动
sudo systemctl enable mysqld
八、远程连接测试
使用以下命令测试是否可以远程连接到 MySQL:
mysql u root p h <服务器IP>
常见问题及解答(FAQs)
Q1: 如果忘记 MySQL root 用户密码怎么办?
A1: 你可以通过以下步骤重置 root 用户密码:
1、停止 MySQL 服务:sudo systemctl stop mysqld
2、以安全模式启动 MySQL:sudo mysqld_safe skipgranttables &
3、登录 MySQL:mysql u root
4、修改 root 用户密码:FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword!';
5、重新启动 MySQL 服务:sudo systemctl restart mysqld
Q2: 如何更改 MySQL 的数据存储位置?
A2: 你可以通过以下步骤更改 MySQL 的数据存储位置:
1、停止 MySQL 服务:sudo systemctl stop mysqld
2、移动现有的数据目录到新的位置,例如/newdatadir
:sudo mv /var/lib/mysql /newdatadir
3、创建符号链接指向新的数据目录:sudo ln s /newdatadir /var/lib/mysql
4、修改/etc/my.cnf
文件中的datadir
参数,指向新的数据目录:datadir=/newdatadir
5、重新启动 MySQL 服务:sudo systemctl start mysqld