我已通过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密码)似乎有效。我在这里缺少什么?
答案 0 :(得分:0)
为什么不使用mysqladmin创建用户(自其CentOS以来)
mysqladmin -uroot Password rootpwd
mysqladmin -utest Password testpwd
这将为您创建用户
以后可以照顾补助优惠
答案 1 :(得分:0)
testusr@localhost
拒绝访问。正如上面的@Martin暗示的那样,使用通配符%
作为主机解决了这个问题。