2026/1/10 10:47:43
网站建设
项目流程
网站建设与管理认识,万维网网站注册,网络推广培训学费几万,南宁网站建设 南宁联达亿本文以 MySQL 8.0 为例#xff08;适配麒麟 V10 x86 最稳定版本#xff09;#xff0c;全程覆盖「环境检查→下载安装→配置优化→服务管理→验证使用」全流程#xff0c;兼顾新手友好性和生产级配置#xff0c;步骤细化到每一条命令和参数说明。
一、前期准备
1.1 检查…本文以MySQL 8.0为例适配麒麟 V10 x86 最稳定版本全程覆盖「环境检查→下载安装→配置优化→服务管理→验证使用」全流程兼顾新手友好性和生产级配置步骤细化到每一条命令和参数说明。一、前期准备1.1 检查系统环境首先确认系统版本和架构确保是银河麒麟 V10 x86_64bash运行# 查看系统版本 cat /etc/os-release # 查看系统架构必须是x86_64 uname -m输出示例确认arch为x86_64NAME包含 “Kylin Linux Advanced Server 10”plaintextNAMEKylin Linux Advanced Server VERSIONV10 (Tercel) IDkylin VERSION_IDV10 archx86_641.2 关闭防火墙 / SELinux可选生产环境按需配置麒麟 V10 默认启用防火墙和 SELinux临时关闭避免安装 / 连接问题bash运行# 关闭防火墙临时重启失效 systemctl stop firewalld systemctl disable firewalld # 关闭SELinux临时重启失效 setenforce 0 # 永久关闭SELinux修改配置文件 sed -i s/^SELINUX.*/SELINUXdisabled/ /etc/selinux/config1.3 卸载系统自带 MariaDB避免冲突麒麟 V10 可能预装 MariaDB需先卸载bash运行# 查看已安装的MariaDB包 rpm -qa | grep mariadb # 卸载替换为实际查到的包名 rpm -e --nodeps mariadb-libs-xxx.x86_641.4 安装依赖包MySQL 依赖libaio、numactl等库提前安装bash运行yum install -y libaio-devel numactl-devel perl net-tools wget二、下载 MySQL 安装包2.1 方式 1官网下载推荐访问 MySQL 官网https://dev.mysql.com/downloads/mysql/选择操作系统Linux - Generic架构x86_64版本MySQL Community Server 8.0.x推荐 8.0.36 及以上适配麒麟 V10包类型Compressed TAR Archivetar.xz 格式或直接用 wget 命令下载替换为最新版本链接bash运行# 切换到下载目录 cd /usr/local/src # 下载MySQL 8.0.36x86_64 wget https://cdn.mysql.com/Downloads/MySQL-8.0/mysql-8.0.36-linux-glibc2.28-x86_64.tar.xz2.2 方式 2国内镜像速度更快bash运行cd /usr/local/src # 阿里云镜像示例 wget https://mirrors.aliyun.com/mysql/Downloads/MySQL-8.0/mysql-8.0.36-linux-glibc2.28-x86_64.tar.xz三、安装 MySQL3.1 解压安装包bash运行# 解压xz格式需先解压为tar再解包 xz -d mysql-8.0.36-linux-glibc2.28-x86_64.tar.xz tar -xvf mysql-8.0.36-linux-glibc2.28-x86_64.tar # 移动并重命名规范路径 mv mysql-8.0.36-linux-glibc2.28-x86_64 /usr/local/mysql3.2 创建用户和目录MySQL 需独立用户运行避免 root 权限风险bash运行# 创建mysql用户无登录权限 useradd -s /sbin/nologin -M mysql # 创建数据/日志/临时目录 mkdir -p /data/mysql # 数据目录 mkdir -p /var/log/mysql # 日志目录 mkdir -p /tmp/mysql # 临时目录 # 设置目录权限仅mysql用户可访问 chown -R mysql:mysql /usr/local/mysql chown -R mysql:mysql /data/mysql chown -R mysql:mysql /var/log/mysql chown -R mysql:mysql /tmp/mysql chmod 700 /data/mysql # 严格权限3.3 配置系统环境变量让系统识别 mysql 命令bash运行# 编辑环境变量文件 vim /etc/profile # 在文件末尾添加以下内容 export MYSQL_HOME/usr/local/mysql export PATH$PATH:$MYSQL_HOME/bin # 生效配置 source /etc/profile # 验证输出/usr/local/mysql/bin则正确 echo $PATH3.4 初始化 MySQL初始化生成临时密码务必记录bash运行# 初始化指定数据目录、用户、字符集 mysqld --initialize \ --usermysql \ --datadir/data/mysql \ --basedir/usr/local/mysql \ --character-set-serverutf8mb4 \ --collation-serverutf8mb4_general_ci # 关键初始化完成后控制台会输出临时密码格式如下 # [Note] [MY-010454] [Server] A temporary password is generated for rootlocalhost: xxxxxxxx # 示例临时密码可能是8s9k78jL0pQ复制保存若未看到临时密码查看日志cat /var/log/mysql/error.log | grep temporary password3.5 配置 MySQL 服务systemd 管理创建系统服务文件方便启停 / 开机自启bash运行# 创建服务文件 vim /usr/lib/systemd/system/mysqld.service # 粘贴以下内容完整配置 [Unit] DescriptionMySQL Server Documentationman:mysqld(8) Documentationhttp://dev.mysql.com/doc/refman/en/using-systemd.html Afternetwork.target Aftersyslog.target [Install] WantedBymulti-user.target [Service] Usermysql Groupmysql Typenotify TimeoutSec0 PermissionsStartOnlytrue ExecStart/usr/local/mysql/bin/mysqld \ --datadir/data/mysql \ --basedir/usr/local/mysql \ --usermysql \ --log-error/var/log/mysql/error.log \ --pid-file/tmp/mysql/mysqld.pid \ --socket/tmp/mysql/mysql.sock \ --tmpdir/tmp/mysql \ --port3306 LimitNOFILE 5000 Restarton-failure RestartPreventExitStatus1 EnvironmentMYSQLD_PARENT_PID1 # 重新加载systemd配置 systemctl daemon-reload # 设置开机自启 systemctl enable mysqld # 启动MySQL服务 systemctl start mysqld # 查看服务状态显示active (running)则启动成功 systemctl status mysqld四、核心配置优化my.cnf创建 MySQL 主配置文件适配麒麟 V10 性能和稳定性bash运行# 创建配置文件麒麟V10默认无my.cnf手动创建 vim /etc/my.cnf # 粘贴以下配置生产级优化按需调整 [mysqld] # 基础配置 basedir /usr/local/mysql datadir /data/mysql socket /tmp/mysql/mysql.sock pid-file /tmp/mysql/mysqld.pid user mysql port 3306 server-id 1 # 单机部署设为1主从需改 skip-name-resolve # 禁用DNS解析提升连接速度 skip-external-locking # 禁用外部锁 # 字符集适配中文 character-set-server utf8mb4 collation-server utf8mb4_general_ci init_connect SET NAMES utf8mb4 # 日志配置 log-error /var/log/mysql/error.log # 错误日志 slow_query_log 1 # 开启慢查询日志 slow_query_log_file /var/log/mysql/slow.log long_query_time 2 # 慢查询阈值2秒 log_queries_not_using_indexes 1 # 记录未使用索引的查询 # 性能优化根据服务器配置调整 max_connections 1000 # 最大连接数 max_connect_errors 1000000 # 最大连接错误数 innodb_buffer_pool_size 2G # 内存的50%-70%示例8G内存设4G innodb_log_file_size 512M # 日志文件大小 innodb_log_buffer_size 64M innodb_flush_log_at_trx_commit 1 # 事务安全生产建议1 tmp_table_size 64M max_heap_table_size 64M query_cache_type 0 # 8.0已废弃关闭 query_cache_size 0 [client] socket /tmp/mysql/mysql.sock default-character-set utf8mb4 [mysql] prompt\\u\\h [\\d] # 美化命令行提示符 default-character-set utf8mb4配置完成后重启 MySQLbash运行systemctl restart mysqld五、登录 MySQL 并修改密码5.1 首次登录使用临时密码bash运行# 登录MySQL输入初始化时的临时密码 mysql -uroot -p # 示例输入密码后进入MySQL命令行提示符变为rootlocalhost [(none)]5.2 修改 root 密码必须sql-- 修改root本地登录密码替换为你的新密码建议包含大小写数字特殊字符 ALTER USER rootlocalhost IDENTIFIED BY MyNewPass123!; -- 允许root远程登录生产环境建议创建专用用户而非开放root ALTER USER rootlocalhost IDENTIFIED BY MyNewPass123! PASSWORD EXPIRE NEVER; CREATE USER root% IDENTIFIED BY MyNewPass123!; GRANT ALL PRIVILEGES ON *.* TO root% WITH GRANT OPTION; -- 刷新权限 FLUSH PRIVILEGES; -- 退出MySQL EXIT;5.3 验证新密码登录bash运行# 本地登录 mysql -uroot -pMyNewPass123! # 远程登录从其他机器 mysql -uroot -pMyNewPass123! -h 麒麟服务器IP -P 3306六、常见问题解决6.1 启动失败找不到 libtinfo.so.5麒麟 V10 可能缺少该库解决bash运行# 查找系统现有库 find / -name libtinfo.so* # 创建软链接 ln -s /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.56.2 远程连接失败检查防火墙systemctl status firewalld若开启放行 3306 端口firewall-cmd --permanent --add-port3306/tcp firewall-cmd --reload检查 my.cnf确认无bind-address 127.0.0.1或改为0.0.0.0检查用户权限SELECT user, host FROM mysql.user;确保 root% 存在6.3 初始化时报错权限不足bash运行# 重新设置目录权限 chown -R mysql:mysql /data/mysql /usr/local/mysql /var/log/mysql chmod 700 /data/mysql6.4 忘记 root 密码bash运行# 停止MySQL服务 systemctl stop mysqld # 跳过权限验证启动 mysqld_safe --skip-grant-tables --usermysql # 免密登录 mysql -uroot # 修改密码 USE mysql; UPDATE user SET authentication_string WHERE userroot; ALTER USER rootlocalhost IDENTIFIED BY 新密码; FLUSH PRIVILEGES; EXIT; # 重启MySQL systemctl restart mysqld七、验证安装完成bash运行# 1. 查看MySQL版本 mysql -V # 输出mysql Ver 8.0.36 for Linux on x86_64 (MySQL Community Server - GPL) # 2. 查看服务状态 systemctl status mysqld # 3. 查看监听端口3306端口LISTEN则正确 netstat -tulnp | grep 3306 # 4. 登录并创建测试库 mysql -uroot -p CREATE DATABASE test_db; SHOW DATABASES; # 能看到test_db则正常八、生产环境建议禁用 root 远程登录创建专用业务用户仅授予必要权限sqlCREATE USER app_user% IDENTIFIED BY AppPass123!; GRANT SELECT, INSERT, UPDATE, DELETE ON test_db.* TO app_user%; FLUSH PRIVILEGES;定期备份使用mysqldump备份数据bash运行mysqldump -uroot -p --all-databases /backup/mysql_full_$(date %Y%m%d).sql监控日志定期检查慢查询日志和错误日志优化 SQL调整内核参数修改/etc/security/limits.conf提升文件句柄数bash运行echo mysql soft nofile 65535 /etc/security/limits.conf echo mysql hard nofile 65535 /etc/security/limits.conf开启二进制日志用于数据恢复 / 主从复制my.cnf 添加inilog_bin /data/mysql/mysql-bin binlog_format row expire_logs_days 7至此银河麒麟 V10 x86 平台的 MySQL 8.0 已完成完整安装和配置可直接用于开发 / 生产环境。