使用docker安裝Mariadb過程中出現了很多問題,這里匯總下
啟動環境 centos7
新建mysql/my.cnf文件,作為mysql的配置文件
skip-name-resolve user=mysql # user為root,會導致下面的報錯 character-set-server=utf8 default_authentication_plugin=mysql_native_password sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION lower_case_table_names=1 #忽略表名大小寫 # skip-grant-tables 如果密碼不生效可以注釋這一行,然后進入容器配置密碼 [client] default-character-set=utf8 [mysql] default-character-set=utf8 復制代碼
通過docker-compose啟動mysql
version: '3' networks: app-web: driver: bridge services: mysql: image: mariadb ports: - 3306:3306 command: --default-authentication-plugin=mysql_native_password restart: always networks: - app-web environment: - TZ=Asia/Shanghai - MYSQL_USER=admin - MYSQL_ROOT_PASSWORD=123456 privileged: true volumes: - ./mysql/data:/var/lib/mysql - ./mysql/my.cnf:/etc/mysql/my.cnf - /etc/localtime:/etc/localtime 復制代碼
發現報錯,容器內文件沒有訪問權限,用鏡像啟動的數據庫沒有root用戶。
2021-10-10 12:25:27+08:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.6.4+maria~focal started. 2021-10-10 12:25:27+08:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql' 2021-10-10 12:25:27+08:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.6.4+maria~focal started. 2021-10-10 12:25:28+08:00 [Note] [Entrypoint]: Initializing database files chown: changing ownership of '/var/lib/mysql/': Operation not permitted Cannot change ownership of the database directories to the 'root' user. Check that you have the necessary permissions and try again. 復制代碼
1、docker-compose.yml 增加配置privileged:true
,還是會有同樣的問題,主要是my.cnf中的user=root造成的
2、查看資料發現下面兩種解決方法
方法一
$ docker run -d -e MYSQL_ROOT_PASSWORD=admin -v /home/epccweb/test:/var/lib/mysql --user 1000:50 mysql:5.7 $ # or whatever user and group id that the container sees on the mounted folder: $ docker run -it --rm -v /home/epccweb/test:/var/lib/mysql mysql:5.7 ls -aln /var/lib/mysql 復制代碼
由于要先啟動容器,在修改,這里已啟動就掛,所以沒發使用。
方法二
https://stackoverflow.com/questions/24288616/permission-denied-on-accessing-host-directory-in-docker 進入主機的vi /etc/selinux/config嘗試禁用主機的SELINUX=disabled,發現本來就是禁止的,所以暫時放棄該方法啟動數據庫 復制代碼
docker run -d --restart=always -p 3306:3306 -e MYSQL_USER=admin -e TZ=Asia/Shanghai --privileged=true -e MYSQL_ROOT_PASSWORD='123456' -v /data/mysql/data:/var/lib/mysql -v /data/mysql/my.cnf:/etc/mysql/my.cnf -v /etc/localtime:/etc/locatime mariadb 復制代碼
成功啟動docker鏡像
嘗試進入數據庫,發現報錯,但密碼不生效
1045 - Access denied for user 'root'@'localhost' (using passwor...) 在my.cnf中增加skip-grant-tables, 跳過密碼登陸,然后執行下面命令修改用戶密碼 use mysql; update user set password=password("123456") where user="root"; 報錯信息: ERROR 1348 (HY000): Column 'Password' is not updatable // 繼續執行報錯 MariaDB [mysql]> ALTER USER 'root'@'localhost' identified by '123456'; ERROR 1290 (HY000): The MariaDB server is running with the --skip-grant-tables option so it cannot execute this statement // 重啟下:flush privileges; // 再次執行 MariaDB [mysql]> set password for 'root'@'localhost' = '123456'; ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number // 對密碼進行轉化 MariaDB [mysql]> select password(123456) -> ; +-------------------------------------------+ | password(123456) | +-------------------------------------------+ | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | +-------------------------------------------+ // reset password MariaDB [mysql]> set password for 'root'@'localhost' = '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9'; Query OK, 0 rows affected (0.002 sec) 復制代碼
然后刪除my.cnf中的skip-grant-tables,重啟容器,使用密碼登陸,發現成功
作者:前端中后臺
鏈接:https://juejin.cn/post/7145351253130739725
來源:稀土掘金
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/127968.html
摘要:停掉一臺,查看負載均衡健康檢查是否正常搭建集群創建需使用的數據庫啟動訪問增加訪問控制。給配置負載均衡,增加配置重啟訪問添加主機,添加容器,測試是否正常,惡意掉容器或者關閉機器,查看整個集群是否正常。 rancher高可用集群搭建 一、搭建環境 1.安裝系統 下載centos最新版, http://mirrors.sohu.com/centos/7/isos/x86_64/CentOS...
閱讀 351·2024-11-07 18:25
閱讀 130598·2024-02-01 10:43
閱讀 914·2024-01-31 14:58
閱讀 879·2024-01-31 14:54
閱讀 82884·2024-01-29 17:11
閱讀 3176·2024-01-25 14:55
閱讀 2028·2023-06-02 13:36
閱讀 3108·2023-05-23 10:26