Jinx

一只奶牛猫

Docker安装MySQL

发布于 # docker # mysql

docker安装MySQL5.7版本

docker pull mysql/mysql-server:5.7
docker run -d --name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=jinpeng1030 mysql/mysql-server:5.7

如果没有权限登陆

docker exec -it mysql5.7 bash

# 登陆mysql
mysql -uroot -p

# 将root用户的Host 由 localhost 修改为 %
update mysql.user set Host = '%' where User = 'root';

# 刷新(刷新可以使用IP登陆,图形化界面登陆)
flush privileges;

docker compose部署

version: "3"
services:
  mysql:
    image: mysql
    container_name: mysql
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: example
    ports:
      - 3306:3306
    volumes:
      - /data/mysql/my.cnf:/etc/my.cnf
      - /data/mysql/db:/var/lib/mysql
    network_mode: "bridge" # "host"

mysql账号创建与赋权

  • 创建用户

CREATE USER ‘username’@‘host’ IDENTIFIED BY ‘password’;

说明: username:你将创建的用户名

host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%

password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器

  • 授权

GRANT privileges ON databasename.tablename TO ‘username’@‘host’

说明: privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL

databasename:数据库名 tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用表示,如.*

例子:

GRANT SELECT, INSERT ON test.user TO ‘pig’@’%‘;

GRANT ALL ON . TO ‘pig’@’%‘;

4.已建账号说明

目前因phecha项目使用非自建数据库,暂未建账号,其他5个项目均已建立备份账号

账号:{项目名小写}

密码:{项目名首字母大写**9330}