温馨提示×

mysql在ubuntu中怎么配置

小樊
31
2025-12-12 08:31:49
栏目: 云计算

Ubuntu 上 MySQL 的配置步骤

一 安装与初始化

  • 更新索引并安装服务器:sudo apt update && sudo apt install mysql-server
  • 启动并设置开机自启:sudo systemctl start mysql;sudo systemctl enable mysql
  • 检查运行状态:sudo systemctl status mysql(看到 Active: active (running) 即正常)
  • 运行安全向导:sudo mysql_secure_installation(设置 root 密码、删除匿名用户、禁止远程 root 登录、移除测试库等)

二 配置文件结构与常用参数

  • 配置文件路径与加载顺序:/etc/my.cnf → /etc/mysql/my.cnf → ~/.my.cnf;/etc/mysql/my.cnf 通过 !includedir 引入 /etc/mysql/conf.d/ 与 /etc/mysql/mysql.conf.d/,服务器主要配置在 /etc/mysql/mysql.conf.d/mysqld.cnf
  • 常用参数与作用:
    • bind-address:监听地址,127.0.0.1 仅本机,0.0.0.0 监听所有地址(远程访问需改此项)
    • port:端口,默认 3306
    • max_connections:最大连接数
    • innodb_buffer_pool_size:InnoDB 缓冲池大小(建议设为物理内存的约 50%–70%)
    • 修改后重启生效:sudo systemctl restart mysql
  • 示例(编辑 mysqld.cnf 的 [mysqld] 段):
    • bind-address = 0.0.0.0
    • max_connections = 200
    • innodb_buffer_pool_size = 1G

三 用户与权限及远程访问

  • 创建业务库与用户并授权(推荐最小权限):
    • CREATE DATABASE example_db;
    • CREATE USER ‘example_user’@‘localhost’ IDENTIFIED BY ‘StrongPass!’;
    • GRANT ALL PRIVILEGES ON example_db.* TO ‘example_user’@‘localhost’;
    • FLUSH PRIVILEGES;
  • 远程访问(按需开启):
    • 配置 bind-address = 0.0.0.0(见上节)
    • 创建远程用户:CREATE USER ‘remote’@‘%’ IDENTIFIED BY ‘StrongPass!’;
    • 授权:GRANT ALL PRIVILEGES ON . TO ‘remote’@‘%’;(生产环境建议仅授予目标库权限)
    • FLUSH PRIVILEGES;
    • 防火墙放行:sudo ufw allow 3306/tcp(如使用 UFW)

四 备份与恢复

  • 逻辑备份(全库):mysqldump -u root -p --all-databases > all_backup.sql
  • 逻辑备份(单库):mysqldump -u root -p mydatabase > mydatabase.sql
  • 恢复:mysql -u root -p mydatabase < mydatabase.sql(全库恢复:mysql -u root -p < all_backup.sql)

五 常见问题与排错

  • 服务无法启动:查看错误日志 sudo tail -n 100 /var/log/mysql/error.log;修正配置后重启 sudo systemctl restart mysql
  • root 认证方式导致无法登录或安全向导报错:
    • 进入 MySQL:sudo mysql
    • 调整认证插件与密码:ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘YourNewPassword’;
    • FLUSH PRIVILEGES;
  • 远程连不上:确认 bind-address、用户主机为 %、云服务器安全组/本机防火墙已放行 3306 端口

0