以下为ubuntu20.04环境,默认已安装docker,没安装的网上随便找个教程就好了
- 拉去mysql镜像
docker pull mysql
这样是默认拉取最新的版本latest
这样是指定版本拉取
docker pull mysql:5.7
查看已安装的mysql镜像
docker images
通过镜像生成容器
docker run -d -p 3000:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /media/rice/文件/水利数据/DB-GPT-Dec/docker/examples/sqls/:/opt/files/ --name zys-sql mysql
注意3306不能改,这个是内部的端口号,必须是3306,否则外部会连接不到里面,左边的3000可以改成任意没被占用的端口号,外部连接的时候是输入左边的端口号的,-v参数是连接共享文件夹,自行选择,左边是主机文件夹路径,右边是容器内路径
重启一下容器,不然可能概率性出现登录不进mysql的情况
docker restart zys-sql
进入sql容器
docker exec -it zys-sql bash
在容器内输入,然后输入密码
mysql -uroot -p
设置一下权限,这样外面才能访问mysql,否则会无法连接
那个密码是创建容器的时候设置的密码
alter user 'root'@'%' identified with mysql_native_password by '123456';
然后刷新一下权限
flush privileges;
然后用navicat进行连接测试
输入完后点击左下角 Test Connection,显示连接成功就是ok了
查看mysql内部的字符格式
show variables like 'character%';
基本都是这样的,这个latin1格式是不支持mysql输入中文的,会导致乱码
运行这句,把字符格式设置为utf8,这样数据库的中文就不是乱码了
set names utf8;
改完后如下