Appearance
安装 MySQL 数据库
准备好
ubuntu 20或者以上的系统- 假设外网 IP 为
39.104.15.113
- 假设外网 IP 为
安装好
docker和docker-compose创建
/data/software/mysql目录在
/data/software/mysql目录下创建docker-compose.yml文件假设数据库对外端口为
33891,假设数据库root账户的密码为5WZuNyFHahIwlizJ密码可以到 https://suijimimashengcheng.bmcx.com 随机生成一个密码
/data/software/mysql/docker-compose.yml文件内容如下:
yaml
version: '3'
services:
mysql:
image: mysql:8.1
container_name: mysql
ports:
- "33891:3306"
volumes:
- ./conf:/etc/mysql/conf.d
- ./data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=5WZuNyFHahIwlizJ
security_opt:
- seccomp:unconfined- 在
/data/software/mysql/conf目录下创建配置文件my.cnf - 设置
my.cnf文件的权限为644:chmod 644 my.cnf - 在
my.cnf文件中添加如下内容:
ini
[mysqld]
innodb_buffer_pool_size = 1G
sql_mode = ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections = 1000- 如果
ubuntu操作系统是购买的云服务器,需要在云服务器的安全组中开放33891端口 - 在
/data/software/mysql目录下执行docker-compose up -d启动数据库 - 在
/data/software/mysql目录下执行docker-compose down停止数据库 - 在
/data/software/mysql目录下执行docker-compose down -v删除数据库 - 在
/data/software/mysql目录下执行docker-compose logs -f查看数据库启动日志 - 在
/data/software/mysql目录下执行docker-compose exec mysql bash进入数据库容器 - 假设项目名称为
eams,在mysqlworkbench中连接数据库,创建测试库,sql 如下:
sql
-- 创建数据库
CREATE DATABASE IF NOT EXISTS eams4test CHARSET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
-- 创建用户
create user 'eams4test'@'%' identified by '5WZuNyFHahIwlizJ';
-- 设置用户密码不过期
ALTER USER 'eams4test'@'%' IDENTIFIED BY '5WZuNyFHahIwlizJ' PASSWORD EXPIRE NEVER;
-- 给用户授权
grant drop,index,select,insert,update,delete,execute,alter,create,references,lock tables on eams4test.* to 'eams4test'@'%';
-- 刷新权限
flush privileges;- 在
mysqlworkbench中连接数据库,创建正式库,sql 如下:
sql
-- 创建数据库
CREATE DATABASE IF NOT EXISTS eams4prod CHARSET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
-- 创建用户
create user 'eams4prod'@'%' identified by '5WZuNyFHahIwlizJ';
-- 设置用户密码不过期
ALTER USER 'eams4prod'@'%' IDENTIFIED BY '5WZuNyFHahIwlizJ' PASSWORD EXPIRE NEVER;
-- 给用户授权
grant drop,index,select,insert,update,delete,execute,alter,create,references,lock tables on eams4prod.* to 'eams4prod'@'%';
-- 刷新权限
flush privileges;