使用Docker在远程服务器上安装MySQL8并使用本地navicat连接
一、下载MySQL8镜像
docker pull mysql:8
查看已下载的docker镜像:
========================================================
创建mysql容器(跳过这一步)
mkdir /root
mkdir /root/mysql
mkdir /root/mysql/log/
mkdir /root/mysql/conf/
mkdir /root/mysql/data/
touch /root/mysql/my.cnf
my.cnf添加如下内容:
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
=========================================================
二、启动MySQL容器
sudo docker run -d --name mysql8.0 -p 3306#:3306 -e MYSQL_ROOT_PASSWORD=talkweb@123 mysql:8
docker run -di -p 3306:3306 --privileged=true -v /root/mysql/log:/var/log/mysql -v /root/mysql/data:/var/lib/mysql -v /root/mysql/conf/:/etc/mysql -v /root/mysql/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=root --name mysql mysql:8
容器ID
36576df2bff36e6b1ac12a1d6d0071f801a0ad61f804bd33af001355f12c3ba5
-e MYSQL_ROOT_PASSWORD=root:mysql数据库密码设置为root
--privileged=true:容器内的root拥有真正root权限,否则容器内root只是外部普通用户权限
查看MySQL服务是否启动
root@psdz:/home/psdz# ps aux | grep mysql-server
mysql服务没有启动
查看已启动的docker容器
查看MySQL是否启动
进入容器
docker exec -it 6002d9cd5075 /bin/bash;
登录MySQL
mysql -u root -p
查看数据库,这里要记得带分号!
三、配置MySQL数据库的远程访问(使用本地navicat连接服务器MySQL)
解决办法
四、docker中删除已创建的容器
在删除docker容器的时候需要先停止docker,先删docker容器然后再删除镜像
然后docker rm docker容器的名字(docker rm mysql )
查看3306端口的占用情况
root@psdz:/home/psdz# ps aux|grep 3306