MySQL部署记录

OJ项目部署

Posted by Duu on June 6, 2024

本地部署

# 安装
apt-get install mysql-server
systemctl start mysql.service
systemctl enable mysql.service
mysql_secure_installation #设置密码
y y n n y

Docker部署

docker run -d \
--name oj_mysql \
-v /my/mysql_data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=W36TSKN^t*PjSZSD9JYEY#FB*KKT&J \
-e MYSQL_DATABASE=duuoj \
-e MYSQL_USER=duu \
-e MYSQL_PASSWORD=W36TSKN^t*PjSZSD9JYEY#FB*KKT&J \
-p 3306:3306 \
mysql:5.7.31 \
--character-set-server=utf8mb4

踩坑

  1. 远程连接报错#Host is not allowed to connect to this MySQL server #Access denied for user ‘root‘@‘localhost‘ (using password: YES)解决

    • 权限

      use mysql;
      update user set host = '%' where user = 'root';
      grant all privileges on *.* to "root"@"%";
      FLUSH PRIVILEGES;
      
    • 编辑文件:/etc/mysql/my.cnf

      [mysqld]
      bind-address = 0.0.0.0
      添加行:skip-grant-tables
      #减少内存
      performance_schema=off
      
  2. 本地 8 服务器 5.7 字符编码不匹配 运行不了本地的 sql 文件?

将 MySQL 中需要复制的表转存为 SQL 文件(结构和数据),SQL 语句中用的utf8mb4utf8mb4_0900_ai_ci,全部替换成utf8utf8_general_ci,将修改后的 SQL 文件导入 Navicat 运行,结果运行成功