使用bash脚本安装MySQL数据库后无法登录

时间:2013-12-31 19:23:44

标签: mysql bash centos

我已通过SSH连接到远程CentOS机器并运行以下脚本在那里安装MySQL数据库:

# install and start mysql
yum -y install mysql-server
service mysqld start

# setup some random passwords
USER_PASS=`openssl rand -base64 8`
ROOT_PASS=`openssl rand -base64 12`

# create an SQL file to be executed for 
# changing root password, setting up new user, create new database etc.

echo "UPDATE mysql.user SET Password=PASSWORD('$ROOT_PASS') WHERE User='root';" > /tmp/init.sql
echo "DELETE FROM mysql.user WHERE User='';" >> /tmp/init.sql
echo "DROP DATABASE test;"  >> /tmp/init.sql
echo "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';" >> /tmp/init.sql
echo "CREATE DATABASE testdb;" >> /tmp/init.sql
echo "CREATE USER 'testusr'@'127.0.0.1' IDENTIFIED BY '$USER_PASS';"  >> /tmp/init.sql
echo "CREATE USER 'testusr'@localhost IDENTIFIED BY '$USER_PASS';" >> /tmp/init.sql
echo "GRANT ALL PRIVILEGES ON testdb.* TO 'testusr'@'127.0.0.1';" >> /tmp/init.sql
echo "GRANT ALL PRIVILEGES ON testdb.* TO 'testusr'@'localhost';" >> /tmp/init.sql
echo "flush privileges;" >> /tmp/init.sql

# execute the SQL file from root user
cat /tmp/init.sql | mysql -u root

在此之后,每当我尝试使用我在上面创建的testusr用户进行本地登录时,我都会收到“拒绝访问”消息。但是root登录(使用新设置的root密码)似乎有效。我在这里缺少什么?

2 个答案:

答案 0 :(得分:0)

为什么不使用mysqladmin创建用户(自其CentOS以来)

mysqladmin -uroot Password rootpwd

mysqladmin -utest Password testpwd

这将为您创建用户

以后可以照顾补助优惠

答案 1 :(得分:0)

testusr@localhost拒绝访问。正如上面的@Martin暗示的那样,使用通配符%作为主机解决了这个问题。

相关问题