【问题标题】:Installing MySQL on CentOS 6 VM (Vagrant) with bash script使用 bash 脚本在 CentOS 6 VM (Vagrant) 上安装 MySQL
【发布时间】:2013-10-24 13:33:15
【问题描述】:

我正在使用这个脚本来安装和创建数据库,并编辑用户和权限:

sudo yum install mysql-server mysql-client -y

MYSQL_NAME="databasename"
MYSQL_USER="newuser"
MYSQL_PASS="12341234"
MYSQL_ROOTPWD=`openssl rand -base64 12`
MYSQL_TMPFILE=`mktemp --suffix=.sql`

echo "UPDATE mysql.user SET Password=PASSWORD('$MYSQL_ROOTPWD') WHERE User='root';" | tee -a $MYSQL_TMPFILE
echo "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');" | tee -a $MYSQL_TMPFILE
echo "DELETE FROM mysql.user WHERE User='';" | tee -a $MYSQL_TMPFILE
echo "DROP DATABASE test;" | tee -a $MYSQL_TMPFILE
echo "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';" | tee -a $MYSQL_TMPFILE
echo "CREATE DATABASE $MYSQL_NAME CHARACTER SET 'utf8';" | tee -a $MYSQL_TMPFILE
echo "GRANT ALL ON $MYSQL_NAME.* TO '$MYSQL_USER'@'127.0.0.1' IDENTIFIED BY '$MYSQL_PASS';" | tee -a $MYSQL_TMPFILE
echo "GRANT ALL ON test_$MYSQL_NAME.* TO '$MYSQL_USER'@'127.0.0.1' IDENTIFIED BY '$MYSQL_PASS';" | tee -a $MYSQL_TMPFILE
echo "FLUSH PRIVILEGES;" | tee -a $MYSQL_TMPFILE

cat $MYSQL_TMPFILE | mysql -u root
rm $MYSQL_TMPFILE

然后当我运行虚拟机并尝试访问数据库时,没有任何用户我无法访问,它是 root 密码和 newuser 密码不适合。脚本完成后,我将两个密码都保存到文件中。这里有什么帮助知道mysql的问题在哪里吗??

有时,当我销毁VM并重试时,结果会出现错误Can't connect to local MySQL server through socket '/var/mysql/mysql.sock' (38)

我在 Ubuntu 13 上运行,VM 是 CentOS 6

【问题讨论】:

  • 一个小问题:你确定启动脚本时mysql守护进程正在运行吗?
  • 当然我没有写完整的脚本,因为它很大,还有很多与此无关的东西。但是mysql安装后,我调用进程mysql启动

标签: mysql bash ubuntu centos vagrant


【解决方案1】:

问题在于:

echo "FLUSH PRIVILEGES;" | tee -a $MYSQL_TMPFILE

脚本创建的 tmp 文件存在一些 MySQL 语法错误。如果我在 mysql 控制台中编写 tmp 文件或执行命令,MySQL 可以完美运行

【讨论】:

    猜你喜欢
    • 2015-09-24
    • 1970-01-01
    • 2013-09-04
    • 2019-08-23
    • 1970-01-01
    • 2018-12-10
    • 2013-12-06
    • 2013-06-21
    • 2013-08-08
    相关资源
    最近更新 更多