答案:MySQL安装后需运行mysql_secure_installation脚本进行初始安全配置,包括设置root密码、移除匿名用户、禁止root远程登录、删除测试数据库并重载权限表。

在CentOS系统上安装MySQL,核心流程通常是先添加MySQL官方的Yum仓库,然后通过
yum
dnf
说实话,每次在新的CentOS机器上搞MySQL,我都会纠结一下是装Oracle官方的MySQL,还是社区版的MariaDB。但既然标题明确是MySQL,那咱们就走官方的路子。我个人觉得,官方源的MySQL在版本更新和功能支持上更有保障,虽然配置起来可能稍微多几步。
第一步:添加MySQL官方Yum仓库
CentOS自带的软件源里通常没有最新版的MySQL,或者只有MariaDB。所以,我们得手动添加MySQL的官方仓库。
下载仓库配置包: 去MySQL官网找对应的
mysql-community-release-elX.rpm
X
el7
el8
# 如果你没有wget,先装一个 # sudo yum install wget -y wget https://repo.mysql.com/mysql80-community-release-el7-1.noarch.rpm
这里我直接选了MySQL 8.0,这是目前比较主流的版本。如果你需要特定版本,比如5.7,那下载对应的
mysql57-community-release-el7-*.rpm
安装仓库配置包:
sudo rpm -ivh mysql80-community-release-el7-1.noarch.rpm
这一步会把MySQL的仓库配置添加到你的系统里,通常是生成
/etc/yum.repos.d/mysql-community.repo
检查仓库是否启用(可选但推荐): 有时候,默认可能启用了多个MySQL版本,这会导致安装时冲突。你可以编辑
/etc/yum.repos.d/mysql-community.repo
mysql80-community
enabled=1
enabled=0
[mysql80-community]
enabled=1
[mysql57-community]
enabled=0
第二步:安装MySQL服务器
仓库配置好了,现在可以安装了。
sudo yum clean all # 清理一下yum缓存,确保拉取最新仓库信息 sudo yum install mysql-community-server -y
这个命令会安装MySQL服务器以及它所依赖的客户端工具和库。下载和安装过程可能需要一些时间,取决于你的网络速度。
第三步:启动MySQL服务并设置开机自启
安装完成后,MySQL服务默认是不会自动启动的。
sudo systemctl start mysqld # 启动MySQL服务 sudo systemctl enable mysqld # 设置开机自启 sudo systemctl status mysqld # 检查服务状态,确保它正在运行
看到
Active: active (running)
第四步:进行初始安全配置
这是安装完MySQL后非常关键的一步,它会帮你设置root密码、移除匿名用户、禁止root远程登录等。
获取临时root密码: MySQL 8.0在安装时会生成一个临时root密码,并保存在日志文件里。
sudo grep 'temporary password' /var/log/mysqld.log
你会看到类似
root@localhost: <一串字符>
运行安全配置脚本:
mysql_secure_installation
它会提示你输入临时密码。输入后,它会问你一系列问题:
一步步跟着提示走,基本上就搞定了。
第五步:验证安装
最后,尝试用新设置的root密码登录MySQL,确保一切正常。
mysql -u root -p
输入你刚刚设置的新密码,如果能成功进入MySQL命令行,恭喜你,MySQL已经成功安装并配置好了!
这真的是个老生常谈,但又极其容易被忽视的问题。很多人装完MySQL,一看到服务跑起来了,就觉得万事大吉,直接开始用。殊不知,默认安装的MySQL安全配置非常薄弱,简直是给黑客敞开了大门。我每次都强调,
mysql_secure_installation
这个脚本主要做了几件事,每件都至关重要:
mysql_secure_installation
localhost
test
我见过不少因为偷懒没跑这个脚本,结果数据库被入侵的案例。所以,哪怕再着急,也请务必花几分钟完成这个步骤。它能帮你省去未来无数的麻烦。
MySQL的配置文件在CentOS上通常是
my.cnf
/etc/my.cnf
/etc/mysql/my.cnf
/etc/my.cnf
/etc/my.cnf.d/
.cnf
/etc/my.cnf
/etc/mysql/my.cnf
/usr/my.cnf
~/.my.cnf
/etc/my.cnf
要找到实际生效的配置文件,你可以用这个命令:
mysql --help | grep "Default options" -A 1
它会告诉你MySQL搜索配置文件的路径顺序。
如何优化? 优化MySQL配置是一门大学问,没有一劳永逸的方案,它需要根据你的服务器硬件、数据库大小、并发量和业务类型来调整。但有一些通用的参数,我个人觉得是每次安装后都值得关注的:
innodb_buffer_pool_size
innodb_buffer_pool_size = 4G
如果这个值设置得太小,MySQL会频繁地从磁盘读取数据,性能会急剧下降。
max_connections
max_connections = 500
调整这个值后,记得测试你的应用,看看是否会出现连接池耗尽或者服务器内存不足的问题。
character_set_server
collation_server
utf8mb4
character_set_server = utf8mb4 collation_server = utf8mb4_unicode_ci
同时,也要确保你的客户端连接字符集与服务器一致。
query_cache_size
query_cache_type
log_error
log_error = /var/log/mysqld.log
修改配置后: 修改
my.cnf
sudo systemctl restart mysqld
我个人习惯是,每次修改完配置,都先用
mysqld --verbose --help | grep -A 1 "Default options"
mysqladmin variables -u root -p
MySQL服务无法启动,这简直是运维的家常便饭,但每次遇到都挺让人头疼的。我个人经验是,排查这类问题,最关键的就是看日志,日志,还是日志!
检查服务状态和系统日志: 首先,别瞎猜,直接问问系统发生了什么。
sudo systemctl status mysqld.service
如果服务是
inactive (dead)
failed
journalctl
sudo journalctl -xe | grep mysqld
这个命令会显示最近的系统日志,并过滤出与
mysqld
查看MySQL自身的错误日志: MySQL有自己的错误日志文件,通常位于
/var/log/mysqld.log
sudo tail -f /var/log/mysqld.log
或者直接
cat
my.cnf
常见问题及排查方向:
配置文件错误: 这是最常见的。比如
my.cnf
# 尝试用mysqld命令检查配置文件的语法 mysqld --verbose --help | grep -A 1 "Default options"
这个命令本身不会启动服务,但可以帮你检查配置文件路径和一些默认参数。
数据目录权限问题: MySQL服务需要对数据目录(通常是
/var/lib/mysql
sudo chown -R mysql:mysql /var/lib/mysql sudo chmod -R 755 /var/lib/mysql # 或者根据实际需要调整权限
特别是在手动迁移数据目录后,很容易出现权限问题。
磁盘空间不足: 如果数据目录所在的磁盘空间满了,MySQL也可能无法启动。
df -h
检查磁盘使用情况。
端口冲突: 默认端口3306可能被其他程序占用。
sudo netstat -tulnp | grep 3306
如果发现有其他进程占用了3306端口,你需要找到并停止那个进程,或者修改MySQL的端口。
SELinux或防火墙: CentOS默认开启SELinux,它可能会阻止MySQL访问某些目录或端口。
sestatus
denied
sudo setenforce 0 # 临时设置为Permissive模式
如果MySQL能启动,说明是SELinux的问题,你需要为MySQL设置正确的SELinux上下文。
sudo systemctl status firewalld sudo firewall-cmd --list-all # 查看防火墙规则 # 允许3306端口(如果你需要远程访问) # sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent # sudo firewall-cmd --reload
MySQL初始化失败: 特别是MySQL 8.0,在第一次启动前需要进行数据目录初始化。如果这一步没有正确完成,服务也会启动失败。通常,安装包会自动处理,但如果你手动删除了
/var/lib/mysql
sudo mysqld --initialize --user=mysql --datadir=/var/lib/mysql
注意:这个命令会创建一个新的数据目录并生成临时root密码,会覆盖现有数据,请谨慎使用。
总之,遇到MySQL启动问题,保持冷静,一步步查看日志,分析错误信息。日志是你的朋友,它们会告诉你真相。
以上就是CentOS如何安装MySQL_CentOS系统MySQL安装与配置教程的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号