Docker安裝MariaDB-10.2


1 docker search mariadb 搜索mariadb鏡像(非必須)

2 docker pull mariadb 下載docker鏡像

3 docker images 查看本地已有的所有鏡像

4 mkdir -p /data/mariadb/data 建一個目錄作為和容器的映射目錄

5 docker run --name mariadb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=輸入數據庫root用戶的密碼 -v /data/mariadb/data:/var/lib/mysql -d mariadb

  --name啟動容器設置容器名稱為mariadb

  -p設置容器的3306端口映射到主機3306端口

  -e MYSQL_ROOT_PASSWORD設置環境變量數據庫root用戶密碼為輸入數據庫root用戶的密碼

  -v設置容器目錄/var/lib/mysql映射到本地目錄/data/mariadb/data

  -d后台運行容器mariadb並返回容器id

6 docker ps -a 查看容器是否運行

7 docker container update --restart=always 容器id   修改容器為自啟動

8 進入容器docker exec -it 容器Id bash

9 在容器內登錄數據庫 mysql -uroot -proot密碼

10 修改遠程登錄j及密碼

1、設置遠程登錄:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
2、修改用戶密碼,以root為例

知道root密碼,需要修改
方法a. 登入數據庫來修改
# mysql -uroot -p /*輸入密碼進入*/  
/*第一個方式:直接編輯數據庫字段*/  
MariaDB [(none)]> use mysql;  
MariaDB [mysql]> UPDATE user SET password=password('newpassword') WHERE user='root';  
MariaDB [mysql]> flush privileges;  
MariaDB [mysql]> exit  
/*第二個方式:修改密碼,不用進入mysql*/  
MariaDB [(none)]> SET password for 'root'@'localhost'=password('newpassword');  
MariaDB [(none)]> exit;  

忘記密碼:
# systemctl stop mariadb /*先停掉當前的mysql進程,不然執行下一步說進程已經存在*/  
# mysqld_safe --skip-grant-tables & /*后台直接這個mysql,界面中還會出現日志,直接ctrl+c進入命令行輸入*/   
# ps -ef | grep mariadb /*看進程,會突出顯示--skip-grant-tables*/  
  mysql     3607  3368  0 18:05 pts/0    00:00:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql   
  --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --skip-grant-tables --log-error=/var/log/mariadb/mariadb.log   
  --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock  
# mysql /*直接進入mysql,不需要密碼等,執行第一步中方法a里兩種方式中任何一種即可*/  
MariaDB [(none)]> use mysql;  
MariaDB [mysql]> UPDATE user SET password=password('newpassword') WHERE user='root';  
MariaDB [mysql]> flush privileges;   
MariaDB [mysql]> exit; /*這個時候用參數--skip-grant-tables啟動的mysql已經會要求輸入密碼才能進入了*/  
# pkill mysql /*用pkill來殺,kill不死,kill之后自動起來一個*/  
# systemctl start mariadb /*啟動正常的mysql*/


MariaDB [(none)]> select host,user,authentication_string from user;
ERROR 1046 (3D000): No database selected
MariaDB [(none)]> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [mysql]> select host,user,authentication_string from user;
+-----------+-------------+-------------------------------------------+
| Host      | User        | authentication_string                     |
+-----------+-------------+-------------------------------------------+
| localhost | mariadb.sys |                                           |
| localhost | root        | *02414E122D89A54B387E212E9BE95AA96D9DA3B9 |
| %         | root        | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
+-----------+-------------+-------------------------------------------+
3 rows in set (0.001 sec)

MariaDB [mysql]> ALTER USER 'root'@'%' IDENTIFIED BY 'xueqing@2020';
Query OK, 0 rows affected (0.002 sec)

MariaDB [mysql]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.001 sec)

MariaDB [mysql]> select host,user,authentication_string from user;
+-----------+-------------+-------------------------------------------+
| Host      | User        | authentication_string                     |
+-----------+-------------+-------------------------------------------+
| localhost | mariadb.sys |                                           |
| localhost | root        | *02414E122D89A54B387E212E9BE95AA96D9DA3B9 |
| %         | root        | *02414E122D89A54B387E212E9BE95AA96D9DA3B9 |
+-----------+-------------+-------------------------------------------+
3 rows in set (0.001 sec)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM