MySQL容器无法运行

美丽的大海

我想从mysql映像制作自己的mysql容器。但是mysql容器不能运行。我的Dockerfile;

FROM mysql

ENV MYSQL_ROOT_PASSWORD=pass

RUN mkdir /usr/sql

RUN chmod 644 /usr/sql

ADD Tedam_Master.sql /usr/sql/

ADD restoredb.sh /usr/sql/

ADD entrypoint.sh /usr/sql

RUN chmod +x /usr/sql/restoredb.sh

RUN chmod +x /usr/sql/entrypoint.sh

EXPOSE 3306

WORKDIR /usr/sql/

ENTRYPOINT entrypoint.sh

entypoint.sh;

/usr/sql/restoredb.sh && /etc/init.d/mysql start

restoreb.sh;

sleep 10s
echo “Starting database import!”
mysql -u root -p$MYSQL_ROOT_PASSWORD -e “CREATE DATABASE mydb”
mysql -u root -p$MYSQL_ROOT_PASSWORD -D mydb< /usr/sql/Tedam_Master.sql

谁能帮我?同时,mysql应该运行并还原数据库。我能怎么做?

Adiii

您需要在档案文件中进行一些修改。每当遇到某种问题时,请始终使用-it而不是-d运行您的docker。正如您提到的,我尝试从入口点运行MySQL,但存在一些权限问题,ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)并且mysql停止了自我检查。这会起作用。还有mysql docker版本。

请检查此内容,以解决您的配置问题。

https://github.com/docker-library/mysql/issues/302

    FROM mysql:5.5

ENV MYSQL_ROOT_PASSWORD=pass

RUN mkdir /usr/sql

RUN chmod 644 /usr/sql
RUn usermod -d /var/lib/mysql/ mysql
ADD Tedam_Master.sql /usr/sql/

ADD restoredb.sh /usr/sql/restoredb.sh

ADD entrypoint.sh /usr/sql/entrypoint.sh

RUN chmod +x /usr/sql/restoredb.sh

RUN chmod +x /usr/sql/entrypoint.sh

EXPOSE 3306

WORKDIR /usr/sql/

# ENTRYPOINT ["/usr/sql/entrypoint.sh"]
CMD ["mysqld"]

对于restoreb,您可以在启动后运行,或者如果docker compose将它们放在yml文件的command部分中。

docker exec -it test bash -c "/usr/sql/restoredb.sh"

更新:

您提到的错误是在未设置密码时发生的。请检查容器中的ENV值。在容器运行时传递ENV是一种很好的做法,因此我尝试了类似的方法。

docker run --rm   --name db  -e MYSQL_ROOT_PASSWORD=abc123 -it db

而且我没有您的数据库还原脚本。我运行一个仅更新时区的脚本。

    #!/bin/sh
echo '********Welcome to Docker*******'
echo '********Booting up and connect db container time:20s*******'
sleep 10s
DBSERVER=localhost
USER=root
PASS=pass
MYSQL_CONN="-h${DBSERVER} -u${USER} -p${PASS}"
SQL="SET GLOBAL time_zone='US/Eastern'"
if mysql ${MYSQL_CONN} -ANe"${SQL}"; then
SQL="SELECT @@global.time_zone"
res=`mysql ${MYSQL_CONN} -ANe "${SQL}"`
echo "Time zone update to" $res  ;
else
echo "Failed to update timezone check log"
fi

这是屏幕截图。请检查环境并尝试首先手动连接mysql -u root -p

在此处输入图片说明

更新2导入数据库:使用此脚本代替

#!/bin/sh

    sleep 10s
    DBSERVER=localhost

USER=root
PASS=27940001
MYSQL_CONN="-h${DBSERVER} -u${USER} -p${PASS}"
SQL="create database testdb"
if mysql ${MYSQL_CONN} -ANe"${SQL}"; then
SQL="show databases"
res=`mysql ${MYSQL_CONN} -ANe "${SQL}"`
echo "Database created list of DB's is " $res  ;
mysql -u root -p27940001 -h localhost testdb < test.sql
else
echo "Failed to to create db"
fi

示例数据库导入脚本test.sql

将其复制到dockerfile中

copy test.sql /usr/sql/test.sql

    --
-- Database: `samplevideo_db`
--

-- --------------------------------------------------------

--
-- Table structure for table `user_details`
--

CREATE TABLE IF NOT EXISTS `user_details` (
  `user_id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) DEFAULT NULL,
  `first_name` varchar(50) DEFAULT NULL,
  `last_name` varchar(50) DEFAULT NULL,
  `gender` varchar(10) DEFAULT NULL,
  `password` varchar(50) DEFAULT NULL,
  `status` tinyint(10) DEFAULT NULL,
  PRIMARY KEY (`user_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=10001 ;

--
-- Dumping data for table `user_details`
--

INSERT INTO `user_details` (`user_id`, `username`, `first_name`, `last_name`, `gender`, `password`, `status`) VALUES
(1, 'rogers63', 'david', 'john', 'Female', 'e6a33eee180b07e563d74fee8c2c66b8', 1),
(2, 'mike28', 'rogers', 'paul', 'Male', '2e7dc6b8a1598f4f75c3eaa47958ee2f', 1),
(3, 'rivera92', 'david', 'john', 'Male', '1c3a8e03f448d211904161a6f5849b68', 1),
(4, 'ross95', 'maria', 'sanders', 'Male', '62f0a68a4179c5cdd997189760cbcf18', 1),
(5, 'paul85', 'morris', 'miller', 'Female', '61bd060b07bddfecccea56a82b850ecf', 1),
(6, 'smith34', 'daniel', 'michael', 'Female', '7055b3d9f5cb2829c26cd7e0e601cde5', 1),
(7, 'james84', 'sanders', 'paul', 'Female', 'b7f72d6eb92b45458020748c8d1a3573', 1),
(8, 'daniel53', 'mark', 'mike', 'Male', '299cbf7171ad1b2967408ed200b4e26c', 1),
(9, 'brooks80', 'morgan', 'maria', 'Female', 'aa736a35dc15934d67c0a999dccff8f6', 1),
(10, 'morgan65', 'paul', 'miller', 'Female', 'a28dca31f5aa5792e1cefd1dfd098569', 1);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章