Linux安装ping\ifconfig工具、Docker部署MySQL服务器、Docker遇操纵问题

docker是十分方便的开发环境,可以节约大量的环境配置时间,让开发者更加专注于代码部分,而不是环境配置问题。但是在实际的使用过程中依然还是会有很多问题存在,比如:Linux的docker版本服务器优化后缺少ping工具,缺少ifconfig工具等。

1、安装ping工具

比如常用的网络连通测试工具ping,就被精简掉了。
如何再安装上呢?请使用下面的命令:

apt-get install inetutils-ping

2、安装ifconfig工具

如何再安装上ifconfig呢?请使用下面的命令:

apt-get install net-tools

3、使用docker部署MySQL并配置

(1)拉镜像

docker pull mysql/mysql-server
如果想要安装5.8版本的,可以执行以下命令:
docker pull mysql/mysql-server:5.8
等待之后,安装成功,我们查看在本地存储的镜像。

REPOSITORY                                      TAG                 IMAGE ID            CREATED             SIZE
mysql/mysql-server                              latest              467687877063        1 weeks ago         305MB

接下来执行创建容器的命令。

(2)创建容器

注意:配置环境变量MYSQL_ROOT_PASSWORD。
docker run --name mysql1 -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql/mysql-server:latest
在这里要注意-p 33306:3306,前面是宿主机端口,后面是容器Linux本地端口;还有注意最后的:latest,这个是可省略的。如果刚才安装的是指定版本,比如5.8,那么我们就需要执行以下命令了:

docker run --name mysql1 -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql/mysql-server:5.8
好了,安装完成,进行连接测试了。

(3)配置mysql

如提示下错误:

Host '172.17.0.1' is not allowed to connect to this MySQL server

那么我们需要登录mysql进行修改权限。
首先是登录mysql,密码就是我们设置的123456:

$ docker exec -it mysql1 mysql -uroot -p
Enter password:

然后执行如下命令:

use mysql;
update user set host = '%' where user = "root";
flush privileges;(运行后,mysql缓存数据会更新。)

连接测试,发现就正常了。

(4)查看mysql版本号

在命令行登录mysql,即可看到mysql的版本号

$ docker exec -it mysql1 mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 268
Server version: 8.0.22 MySQL Community Server - GPL

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

或者可以登录MySQL,使用select查询:

mysql> select version();
+-----------+
| version() |
+-----------+
| 5.8.1    |
+-----------+
1 row in set (0.01 sec)

(5)mysql版本过高认证失败

mysql 安装了最新版本8.0.11后创建用户并授权后,授权的用户连接数据库提示

The server requested authentication method unknown to the client

查阅一些相关的资料后发现是由于新版本的mysql账号密码解锁机制不一致导致的

(6)MySQL的相关配置信息

找到MySQL的数据目录,以及配置文件my.cnf、错误日志的位置。

mysql> show variables like 'datadir%';
+---------------+-----------------+
| Variable_name | Value           |
+---------------+-----------------+
| datadir       | /var/lib/mysql/ |
+---------------+-----------------+
1 row in set (0.03 sec)

mysql> show variables like 'log_error';
+---------------+---------------------+
| Variable_name | Value               |
+---------------+---------------------+
| log_error     | /var/log/mysqld.log |
+---------------+---------------------+
1 row in set (0.01 sec)
mysql> 
[root@XXXX ~]$ whereis my.cnf

my: /etc/my.cnf

(6)给数据库做个备份

以备不时之需。当然,你也可以用其它方式备份。

[root@XXXX  ~]$ service mysqld stop
Redirecting to /bin/systemctl stop mysqld.service
 
[root@XXXX  ~]$ cp -rp /var/lib/mysql  /tmp/coldbackup
解决办法:

方法1
删除创建的用户和授权,找到mysql配置文件并加入
default_authentication_plugin=mysql_native_password
变为原来的验证方式,然后从新创建用户并授权即可

方法2

$ mysql -uroot -p

> use mysql;

> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';

4、使用docker部署配置常见问题

(1)docker传输文件

docker cp thinksaas1:/var/www/html/   /thinksaas_data/

直接使用cp命令,从指定容器内:指定目录,拷贝到本地目录。

(2)docker挂载本地目录

docker run --name thinksaas -v /thinksaas_data/html:/var/www/html  -it -p 80:80 thinksaas/thinksaas /bin/bash

直接使用-v参数,把本地目录:挂载到docker目录下。

(3)docker挂载本地目录后没有权限

docker run --name thinksaas -v /thinksaas_data/html:/var/www/html --privileged=true  -it -p 80:80 thinksaas/thinksaas /bin/bash

直接使用--privileged=true参数,给docker本地目录权限。


测试
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342