docker容器化部署Mysql8
- 宿主机创建映射文件目录,分别是/home/mysql/conf,/home/mysql/data、/home/mysql/logs
conf目录下创建my.cnf文件
[client] default-character-set = utf8mb4 [mysqld] pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock datadir = /var/lib/mysql secure-file-priv= NULL # Custom config should go here # 字符集 character_set_server=utf8mb4 collation-server=utf8mb4_unicode_ci # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB # 是否对sql语句大小写敏感,0:大小写敏感,1:忽略大小写区别。,只能在初始化服务器时配置。禁止在服务器初始化后更改 # 设置为2时,表名和数据库名按声明存储,但以小写形式进行比较 lower_case_table_names = 2 # 最大连接数 max_connections = 1000 # Innodb缓存池大小 innodb_buffer_pool_size = 4G # 表文件描述符的缓存大小 table_open_cache_instances=1 table_open_cache=2000 table_definition_cache=2000 !includedir /etc/mysql/conf.d/
在conf、data、logs同层目录下,创建start.sh
docker run --restart=always \ --name mysql \ --privileged=true \ -d -p 3306:3306 \ -v /home/mysql/conf/my.cnf:/etc/mysql/my.cnf \ -v /home/mysql/logs:/logs \ -v /home/mysql/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=Hanyuan1230@... \ mysql:8.0.35
- 拉取docker的镜像文件 docker pull mysql:8.0.35
- sh start.sh命令执行脚本代码,创建mysql的docker容器
- 进入mysql容器,docker exec -it mysql bash
- 登录mysql,mysql -u root -p
- 此时root用户外界还不能使用,要给root分配权限。
第一行命令:grant all PRIVILEGES on . to root@'%' WITH GRANT OPTION;
第二行命令:use mysql
第三行命令:update user set host='%' where user='root';
- 至此,外界就可以用root连接到mysql了
当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »