linux环境docker安装mysql(安装mysql客户端)

1:docker拉取mysql镜像(可有自己选择mysql版本)

[root@localhost ~]# docker pull mysql:8.0

2:Docker 中启动 MySQL 容器,可以使用以下命令:

docker run 
-d
--net=host
--name mysql_container 
-v ./sql:/docker-entrypoint-initdb.d
-v ./mysql/conf:/etc/mysql/mysql.conf.d 
-v ./mysql/log:/var/log/mysql 
-v ./mysql/data:/var/lib/mysql 
-e MYSQL_ROOT_PASSWORD=<root_password> 
-e TZ=Asia/Shanghai 
mysql:8.0

注意:如果设置端口不同,需要–net=brige再设置端口-p 3308:3306,(不设置–net,直接使用docker会容易出现docker网络环境异常)

2-1:宿主机通过命令需要连接容器mysql需要安装客户端

mysql -h <hostname> -P <port> -u <username> -p

2-2:宿主机连接提示如下错误

[root@localhost opt]# mysql -uroot -p 
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
[root@localhost opt]# 

注意:如果设置端口不同,需要–net=brige再设置端口-p 3308:3306,(不设置–net,直接使用docker会容易出现docker网络环境异常)

2-3:查看目录/var/lib/mysql/mysql.sock,mysql.sock的超链接指定的位置,如果没有连接mysql.sock就新增,然后连接地址填上mysqld.sock地址

2-4:可以把容器的mysqld.sock挂载出来,容器挂载目录/var/run/mysqld

docker run 
-d 
--name mysql_container 
-v ./sql:/docker-entrypoint-initdb.d
-v ./mysql/conf:/etc/mysql/mysql.conf.d 
-v ./mysql/mysqld:/var/run/mysqld
-v ./mysql/log:/var/log/mysql 
-v ./mysql/data:/var/lib/mysql 
--net=host 
-e MYSQL_ROOT_PASSWORD=<root_password> 
-e TZ=Asia/Shanghai 
mysql:8.0

注意:如果设置端口不同,需要–net=brige再设置端口-p 3308:3306,(不设置–net,直接使用docker会容易出现docker网络环境异常)

3:linux安装mysql客户端命令如下

yum install mariadb   或者yum install mysql

centos 仅安装mysql客户端

yum update -y
yum install mysql -y

注意:通过命令mysqldump --version验证是否安装mysqldump成功

mysqldump --version

通过命令查看客户端版本号

mysql --version

如果以上的方法都没有安装mysql客户端成功,可以去复制docker的mysql,如果也是失败,可以复制其他linux系统下的mysql大约3M放到指定目录下即可

[root@master ~]# docker cp mysql:/usr/bin/mysql /usr/bin/mysql
Successfully copied 7.72MB to /usr/bin/mysql
[root@master ~]# mysql -uroot -p
mysql: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
[root@master ~]# 

复制其他linux系统下的mysql大约3M放到指定目录/usr/bin下即可,接着处理mysql.sock同理,在/var/lib/mysql/mysql.sock有没有该链接,没有就创建,然后链接绑定mysqld.sock

[root@master ~]# mysql -version
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
[root@master ~]#

同理mysqldump也是一样的做法大约24M,放到指定目录/usr/bin下即可

2-2:如果提示ERROR 2059 (HY000): Authentication plugin ‘caching_sha2_password’ cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory,就需要在创建容器的时候设置–default-authentication-plugin=mysql_native_password

docker run -d --name mysql --net=host -v ./mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root mysql:8.0 --default-authentication-plugin=mysql_native_password

2-3:注意:如果要挂载mysql8的配置文件,需要设置宿主机的配置文件权限为644,不然会过滤掉该配置文件

2-4:容器挂载配置文件命令

docker run -d --name mysql --net=host -v /opt/app/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /opt/app/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root mysql:8.0 --default-authentication-plugin=mysql_native_password

2-4:配置文件my.cnf(注意设置skip-grant-tables是无效的,设置lower_case_table_names=1要在容器创建前挂载,不可以动态修改数据库,不然就要清楚掉mysql数据库挂载的目录,从新生成mysql容器)

[mysqld]
lower_case_table_names=1
bind-address = 0.0.0.0
port=3306
innodb_default_row_format=DYNAMIC
innodb_log_file_size=128M
innodb_strict_mode=OFF
innodb_page_size=64k
max_allowed_packet=1024M
innodb_log_buffer_size=16M
innodb_buffer_pool_size=2G

注意:这个最好指定具体的地址,如下

docker run -d --name mysql --net=host -v /opt/app/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root mysql:8.0 --default-authentication-plugin=mysql_native_password

注意:如果设置端口不同,需要–net=brige再设置端口-p 3308:3306,(不设置–net,直接使用docker会容易出现docker网络环境异常)

3:解释一下上述命令中的参数:

-d   以后台模式运行容器
--name mysql_container:为容器指定一个名称(您可以根据需要自定义)
-v ./sql:/docker-entrypoint-initdb.d:将 ./sql 主机目录挂载到容器中的 /docker-entrypoint-initdb.d 目录,用于初始化数据库(可有可无)
-v ./mysql/conf:/etc/mysql/mysql.conf.d:将 ./mysql/conf 主机目录挂载到容器中的 /etc/mysql/mysql.conf.d 目录,用于配置 MySQL(可有可无)
-v ./mysql/log:/var/log/mysql:将 ./mysql/log 主机目录挂载到容器中的 /var/log/mysql 目录,用于存储 MySQL 日志(建议有)
-v ./mysql/data:/var/lib/mysql:将 ./mysql/data 主机目录挂载到容器中的 /var/lib/mysql 目录,用于存储 MySQL 数据(建议有)
-p 将本地主机的 3306 端口映射到容器内的 3306 端口。这允许你通过主机上的端口访问容器中的服务
-e MYSQL_ROOT_PASSWORD=<root_password>:设置 MySQL 的 root 用户密码。请将 <root_password> 替换为您想要设置的密码
-e TZ=Asia/Shanghai 参数设置容器的时区为 Asia/Shanghai
mysql:8.0:指定要使用的 MySQL 镜像及其版本
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 可以使用以下命令在Linux上通过Docker安装MySQL: 1. 首先,安装Docker并启动Docker服务。 2. 使用以下命令从Docker Hub下载MySQL镜像: docker pull mysql 3. 使用以下命令运行MySQL容器: docker run --name mysql -e MYSQL_ROOT_PASSWORD=your_password -d mysql 其中,your_password是你设置的MySQL root用户的密码。 4. 使用以下命令进入MySQL容器: docker exec -it mysql bash 5. 在容器中使用以下命令登录MySQLmysql -u root -p 然后输入你设置的MySQL root用户的密码。 6. 现在你可以在MySQL中创建数据库和表了。 ### 回答2: 在Linux中使用Docker安装MySQL非常方便。下面是通过Docker安装MySQL的步骤: 1. 首先,确保你已经在Linux安装Docker,并且已经启动了Docker服务。(如果没有,请参考相关教程进行安装和启动) 2. 打开终端,运行以下命令,从Docker Hub上下载最新的MySQL镜像: ``` docker pull mysql ``` 3. 等待镜像下载完成后,运行以下命令创建一个MySQL容器: ``` docker run -d --name mysql-container -p 3306:3306 -e MYSQL_ROOT_PASSWORD=your_password mysql ``` 这个命令会创建一个名为mysql-container的容器,并将主机的3306端口映射到容器的3306端口。同时,也通过-e参数设置了MySQL的root用户密码(请将your_password替换为你自己的密码)。 4. 等待容器启动完成后,可以使用以下命令进入MySQL容器: ``` docker exec -it mysql-container mysql -uroot -p ``` 输入密码后,即可进入MySQL的交互式命令行界面。 你也可以使用任何MySQL客户端工具连接到MySQL,通过指定主机IP和端口3306,以及root用户和密码进行连接。 通过以上步骤,你就可以在Linux中使用Docker安装MySQL了。你可以通过Docker管理命令来启动、停止、删除这个MySQL容器。同时,也可以使用Docker的其他功能和特性来进行MySQL的配置和管理。 ### 回答3: 在Linux系统中,可以通过Docker安装MySQL,并且简化了部署和管理过程。 首先,确保已经安装Docker,并且已启动Docker服务。 接下来,打开终端,执行以下命令来从Docker官方仓库拉取MySQL镜像: ```bash docker pull mysql ``` 下载完成后,可以通过以下命令运行MySQL容器: ```bash docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=your-password -d mysql ``` 其中,`--name`参数用于指定容器名称,`-e`参数用于设置MySQL的root密码(将"your-password"替换成你希望的实际密码)。 运行成功后,可以通过命令检查MySQL容器是否正在运行: ```bash docker ps ``` 可以看到已经创建了一个名为`mysql-container`的容器。 接下来,可以通过以下命令进入MySQL容器: ```bash docker exec -it mysql-container mysql -u root -p ``` 此时,会提示输入MySQL的root密码,输入之后即可进入MySQL命令行界面。 至此,已成功通过Docker安装并运行了MySQL。用户可以在MySQL容器内部执行各种数据库操作,例如创建数据库、创建表等。 需要注意的是,如果在容器停止之后再次启动,之前的数据将会丢失。如果需要数据持久化,可以通过Docker挂载本地目录的方式,将数据保存到本地文件系统中。 总结起来,通过Docker安装MySQL可以大大简化了配置和部署的过程,使得开发者可以更加方便地使用MySQL数据库。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值