Mysql
Mysql需要以root身份執行(docker)
我在執行我的 mysql docker 時遇到了一些麻煩。這是我的錯誤:
testmysql | + echo 'Finished mysql_install_db' testmysql | Finished mysql_install_db testmysql | + pid=59 testmysql | + mysql=(mysql --protocol=socket -uroot -hlocalhost --socket=/var/run/mysqld/mysqld.sock) testmysql | + for i in '{30..0}' testmysql | + mysqld --verbose --skip-networking --socket=/var/run/mysqld/mysqld.sock testmysql | + echo 'SELECT 1' testmysql | + mysql --protocol=socket -uroot -hlocalhost '--socket=/var/run/mysqld/mysqld.sock --verbose' testmysql | + echo 'MySQL init process in progress...' testmysql | + sleep 1 testmysql | MySQL init process in progress... testmysql | 2017-02-06 21:44:19 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). testmysql | 2017-02-06 21:44:19 0 [Note] mysqld (mysqld 5.6.35) starting as process 59 ... testmysql | 2017-02-06 21:44:19 59 [ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root! testmysql | testmysql | 2017-02-06 21:44:19 59 [ERROR] Aborting testmysql | testmysql | 2017-02-06 21:44:19 59 [Note] Binlog end testmysql | 2017-02-06 21:44:19 59 [Note] mysqld: Shutdown complete
這是我的碼頭工人撰寫:
version: '2' services: testmysql: build: context: ./test-centos7-mysql image: test-centos7-mysql:latest container_name: testmysql environment: MYSQL_ROOT_PASSWORD: test MYSQL_DATABASE: test_db MYSQL_USER: usr_test MYSQL_PASSWORD: test MYSQL_HOST: localhost networks: test_network: ipv4_address: 172.16.250.1 networks: test_network: driver: bridge ipam: driver: default config: - subnet: 172.16.250.0/24 gateway: 172.16.250.254
還有我的 Dockerfile :
FROM centos:7 #Installation des packages de base RUN yum install -y gcc \ epel-release \ make \ net-tools #Installation Mysql 5.6 RUN wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm RUN rpm -ivh mysql-community-release-el7-5.noarch.rpm RUN yum install -y mysql-community-server # Nettoyage Yum RUN yum clean all && rm -rf /tmp/yum* #Copie du script de permissions COPY ./container_files/fix_permissions.sh ./ RUN chmod -v +x /fix_permissions.sh RUN ./fix_permissions.sh /var/lib/mysql/ && \ ./fix_permissions.sh /var/run/ #Copie du script de création de DB COPY ./container_files/docker-entrypoint.sh / RUN chmod -v +x /docker-entrypoint.sh ENTRYPOINT ["/docker-entrypoint.sh"] #On ouvre le port par défaut de mysql EXPOSE 3306 CMD ["mysqld"]
版本:
[pedegand@localhost:~/docker-test]$ cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) [pedegand@localhost:~/docker-test]$ docker --version Docker version 1.13.0, build 49bf474 [pedegand@localhost:~/docker-test]$ docker-compose --version docker-compose version 1.9.0, build 2585387
我看過幾篇有相同錯誤的文章(https://github.com/docker-library/mysql/issues/216>,<https://github.com/docker-library/mysql/issues/45)但是我不認為我有同樣的問題(沒有掛載並且 MYSQL_HOST 設置為 localhost)。
/usr/libexec/mysqld --user=root
應該管用。線上手冊頁中描述