MySQL 8.0在麒麟系统安装后,别忘了这几步:改密码、开远程、设自启
MySQL 8.0在麒麟系统安装后的关键配置指南当你成功在麒麟V10 SP3系统上安装了MySQL 8.0数据库后真正的挑战才刚刚开始。许多初学者往往忽视了安装后的关键配置步骤导致数据库安全性不足或功能受限。本文将带你深入了解如何正确完成这些关键配置确保你的MySQL数据库既安全又高效。1. 修改默认密码的安全实践安装MySQL 8.0后系统会生成一个临时密码这个密码通常记录在日志文件中。使用临时密码登录后第一件事就是修改这个密码。但修改密码不仅仅是执行一条简单的ALTER USER命令那么简单。1.1 获取临时密码的正确方式临时密码通常位于MySQL的日志文件中你可以通过以下命令查看sudo grep temporary password /var/log/mysqld.log输出结果类似于2023-07-15T03:25:12.123456Z 6 [Note] [MY-010454] [Server] A temporary password is generated for rootlocalhost: J5k!8sdf9*2k注意在某些系统版本中日志文件可能是/var/log/mysql/error.log如果上述路径找不到可以尝试这个路径。1.2 设置强密码的策略MySQL 8.0默认启用了密码验证组件要求密码满足一定强度。以下是设置新密码的正确方法ALTER USER rootlocalhost IDENTIFIED BY MyNewStrongPassword123!;如果遇到密码强度不足的错误你可以设置更复杂的密码包含大小写字母、数字和特殊字符临时降低密码强度要求不推荐生产环境使用SET GLOBAL validate_password.policyLOW; ALTER USER rootlocalhost IDENTIFIED BY simplepassword; SET GLOBAL validate_password.policyMEDIUM;1.3 密码管理的最佳实践定期更换密码建议每3-6个月更换一次数据库密码避免使用默认密码不要使用root、admin等常见密码密码存储安全不要将密码明文存储在脚本或配置文件中密码复杂度要求了解MySQL密码验证组件的三个级别策略级别要求描述LOW密码长度至少8个字符MEDIUM长度至少8包含数字、大小写字母和特殊字符STRONG在MEDIUM基础上还要求不包含字典单词2. 配置远程访问的安全方法允许远程访问MySQL是许多应用场景的需求但直接开放root账户的远程访问会带来严重的安全风险。以下是更安全的配置方法。2.1 创建专用远程访问账户比起直接修改root账户的host更安全的做法是创建一个专门用于远程访问的账户CREATE USER remote_admin% IDENTIFIED BY StrongRemotePassword!; GRANT ALL PRIVILEGES ON *.* TO remote_admin% WITH GRANT OPTION; FLUSH PRIVILEGES;提示生产环境中建议将%替换为具体的客户端IP地址或IP段如192.168.1.%以限制访问来源。2.2 配置MySQL监听地址默认情况下MySQL只监听本地连接。要允许远程连接需要修改配置文件sudo vi /etc/my.cnf在[mysqld]部分添加或修改以下行bind-address 0.0.0.0然后重启MySQL服务sudo systemctl restart mysqld2.3 防火墙配置在麒麟系统上你还需要确保防火墙允许MySQL端口默认3306的访问sudo firewall-cmd --permanent --add-port3306/tcp sudo firewall-cmd --reload3. 设置MySQL服务自启动确保MySQL服务在系统重启后自动启动是生产环境的基本要求。在麒麟系统上systemd是管理服务的主要工具。3.1 启用自启动服务sudo systemctl enable mysqld sudo systemctl start mysqld验证服务状态sudo systemctl status mysqld正常输出应显示active (running)和enabled。3.2 服务管理常用命令命令描述sudo systemctl start mysqld启动MySQL服务sudo systemctl stop mysqld停止MySQL服务sudo systemctl restart mysqld重启MySQL服务sudo systemctl status mysqld查看服务状态sudo systemctl enable mysqld设置开机自启sudo systemctl disable mysqld禁用开机自启3.3 配置服务超时和重试对于高可用环境你可能需要调整服务的启动参数。创建或编辑以下文件sudo vi /etc/systemd/system/mysql.service.d/override.conf添加以下内容[Service] TimeoutStartSec300 Restarton-failure RestartSec5s然后重新加载systemd配置sudo systemctl daemon-reload4. 额外的安全加固措施完成基本配置后还有一些重要的安全措施需要考虑。4.1 运行MySQL安全脚本MySQL提供了一个安全配置脚本sudo mysql_secure_installation这个脚本会引导你完成以下安全设置设置root密码移除匿名用户禁止root远程登录移除测试数据库重新加载权限表4.2 配置SSL连接MySQL 8.0默认启用了SSL支持。你可以通过以下命令检查SSL状态SHOW VARIABLES LIKE %ssl%;要要求所有远程连接使用SSL可以修改用户权限ALTER USER remote_admin% REQUIRE SSL;4.3 定期备份策略即使完成了所有安全配置定期备份仍然是必不可少的。一个简单的备份命令示例mysqldump -u root -p --all-databases full_backup_$(date %F).sql考虑设置自动备份脚本例如通过cron定时执行0 2 * * * /usr/bin/mysqldump -u backup_user -ppassword --all-databases | gzip /backup/mysql_$(date \%F).sql.gz4.4 监控和日志配置确保MySQL日志配置合理便于问题排查sudo vi /etc/my.cnf添加或修改以下内容[mysqld] log_error /var/log/mysql/mysql-error.log slow_query_log 1 slow_query_log_file /var/log/mysql/mysql-slow.log long_query_time 2 log_queries_not_using_indexes 1记得创建日志目录并设置适当权限sudo mkdir /var/log/mysql sudo chown mysql:mysql /var/log/mysql
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2458215.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!