在CentOS 7上配置MySQL是一个相对复杂的过程,但通过详细的步骤和清晰的逻辑,可以顺利完成,本文将详细介绍如何在CentOS 7上安装和配置MySQL,包括卸载MariaDB、下载MySQL资源包、解压安装、配置文件、初始化数据库、启动服务以及设置远程访问等步骤,以下是详细内容:
一、准备工作
更新系统并安装必要的编译工具
确保你的CentOS 7系统已更新到最新状态,并安装了必要的编译工具,可以使用以下命令进行更新和安装工具:
sudo yum update y sudo yum install y gccc++ cmake make
卸载MariaDB
CentOS 7默认自带MariaDB,需要先卸载它以避免冲突:
sudo systemctl stop mariadb.service sudo yum remove mariadb mariadbserver mariadbclient mariadblibs y sudo rm rf /var/lib/mysql
检查旧版本MySQL
确认系统中没有旧版本的MySQL:
rpm qa | grep mysql
如果有输出,显示的MySQL不是想要的版本,则需卸载:
sudo systemctl stop mysqld sudo yum remove mysql mysqlserver mysqllibs mysqlclient y
二、下载并安装MySQL
下载MySQL资源包
从MySQL官方网站下载所需版本的MySQL压缩包,假设我们要安装MySQL 8.0.29:
wget https://cdn.mysql.com/archives/mysql8.0/mysql8.0.29.tar.gz tar xzvf mysql8.0.29.tar.gz cd mysql8.0.29
编译安装MySQL
配置编译参数并编译安装:
cmake \ DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ DDEFAULT_CHARSET=utf8mb4 \ DDEFAULT_COLLATION=utf8mb4_unicode_ci \ DWITH_EXTRA_CHARSETS=all \ DWITH_MYISAM_STORAGE_ENGINE=1 \ DWITH_INNOBASE_STORAGE_ENGINE=1 \ DWITH_PARTITION_STORAGE_ENGINE=1 \ DWITH_READLINE=1 \ DWITH_ZLIB=system \ DWITH_LIBWRAP=0 \ DWITH_DEBUG=0 \ DENABLED_LOCAL_INFILE=1 \ DWITH_SSL=system \ DWITH_EMBEDDED_SERVER=1 \ DWITH_PLUGIN_DIR="/usr/local/mysql/lib/plugin" \ . make j$(nproc) sudo make install
三、配置MySQL
创建用户组和用户
创建MySQL用户和组,以便管理MySQL服务:
sudo groupadd mysql sudo useradd r g mysql mysql
初始化MySQL数据库
初始化MySQL数据目录并设置权限:
sudo chown R mysql:mysql /usr/local/mysql sudo /usr/local/mysql/bin/mysqld initialize user=mysql
创建MySQL服务文件
为了让MySQL服务在系统启动时自动启动,需要创建一个systemd服务文件:
sudo cat > /etc/systemd/system/mysqld.service <<EOF [Unit] Description=MySQL Server After=network.target [Service] User=mysql Group=mysql ExecStart=/usr/local/mysql/bin/mysqld_safe Restart=always RestartSec=10 [Install] WantedBy=multiuser.target EOF
然后启用并启动MySQL服务:
sudo systemctl enable mysqld sudo systemctl start mysqld
登录并设置root密码
登录MySQL并设置root密码:
sudo /usr/local/mysql/bin/mysql u root ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password'; FLUSH PRIVILEGES; EXIT;
开放防火墙端口
如果系统有防火墙,确保3306端口是打开的:
sudo firewallcmd zone=public addport=3306/tcp permanent sudo firewallcmd reload
四、配置远程访问(可选)
如果需要允许远程访问MySQL,可以执行以下命令:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; FLUSH PRIVILEGES;
至此,所有配置全部完毕,你可以通过sqlyog或者其他方式登录MySQL了。
五、常见问题解答(FAQ)
Q1:如何更改MySQL的数据存放目录?
A1:可以在my.cnf
文件中修改datadir
参数,datadir=/data/mysql8_data
,然后重启MySQL服务即可。
Q2:如何更改MySQL的字符集?
A2:在my.cnf
文件中添加或修改charactersetserver
参数,charactersetserver=utf8mb4
,然后重启MySQL服务。
Q3:如何优化MySQL的性能?
A3:根据实际负载情况调整my.cnf
文件中的参数,如max_connections
、taBLe_open_cache
、sort_buffer_size
等,可以参考官方文档或相关性能调优指南。
Q4:如何备份MySQL数据?
A4:可以使用mysqldump
工具进行备份,mysqldump u root p database_name > backup.sql
,恢复数据时使用mysql u root p database_name < backup.sql
。