gpt4 book ai didi

docker - 如何在基于centos6的docker mysql容器上加载转储?

转载 作者:行者123 更新时间:2023-11-29 22:48:28 26 4
gpt4 key购买 nike

我正在尝试基于官方 centos6 镜像创建自己的 mysql docker 容器。我成功构建并运行了 mysql 容器。但是,我希望在容器启动时加载转储。现在这正在生成错误:

“错误 1045 (28000):用户 ''@'localhost' 的访问被拒绝”

请帮忙。

构建图像时我有以下配置加载:

#!/bin/bash

# Borrowed from https://github.com/docker-library/docker-mysql

set -e

if [ -z "$(ls -A /var/lib/mysql)" -a -n "$MYSQL_ROOT_PASSWORD" ]; then
if [ -z "$MYSQL_ROOT_PASSWORD" ]; then
echo >&2 'error: database is uninitialized and MYSQL_ROOT_PASSWORD not set'
echo >&2 ' Did you forget to add -e MYSQL_ROOT_PASSWORD=... ?'
exit 1
fi

scl enable mysql55 "mysql_install_db --user=mysql --datadir=/var/lib/mysql"

# These statements _must_ be on individual lines, and _must_ end with
# semicolons (no line breaks or comments are permitted).
# TODO proper SQL escaping on dat root password D:
cat > /tmp/mysql-first-time.sql <<-EOSQL
DELETE FROM mysql.user ;
CREATE USER 'root'@'%' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}' ;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}' ;
CREATE USER 'mysql'@'%' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}' ;
GRANT ALL PRIVILEGES ON *.* TO 'mysql'@'%' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}' ;
CREATE USER ''@'%' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}' ;
GRANT ALL ON *.* TO ''@'%' IDENTIFIED BY IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}' ;
DROP DATABASE IF EXISTS test ;
commit;
FLUSH PRIVILEGES ;
EOSQL

scl enable mysql55 "mysqld_safe --init-file=/tmp/mysql-first-time.sql &"
sleep 5
exec scl enable mysql55 "mysqladmin -uroot -p${MYSQL_ROOT_PASSWORD} shutdown"
fi

chown -R mysql:mysql /var/lib/mysql
exec scl enable mysql55 "mysqld_safe --datadir=/var/lib/mysql --user=mysql"

最佳答案

您似乎正在尝试在以下几行中创建未命名用户:


创建由 '${MYSQL_ROOT_PASSWORD}' 标识的用户 ''@'%' ;
将 *.* 上的所有内容授予由 '${MYSQL_ROOT_PASSWORD}' 标识的 ''@'%' ;

我不知道这在您的 SQL 引擎中是否有效,但我认为它在 MySQL 中不合法。

关于docker - 如何在基于centos6的docker mysql容器上加载转储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28987064/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com