mysql 5.6 似乎对 mysql_install_db 有一个新的 --random-passwords 选项,它让我发现 root 密码:http ://dev.mysql.com/doc/refman/5.6/en/mysql-install-db.html# option_mysql_install_db_random-passwords
但是我可以用 mysql 5.5 做什么?文档建议 root 密码应该为空,但我似乎无法在没有密码(或空密码)的情况下连接,所以我无法设置真正的 root 密码:
例如:
我像这样初始化数据库:
$ mysql_install_db --no-defaults --user=murrayc --datadir=/tmp/testmysql/data
Run Code Online (Sandbox Code Playgroud)
我像这样启动服务器:
$ mysqld_safe --no-defaults --user=murrayc --port=3308 --datadir='/tmp/testmysql/data' --socket='/tmp/testmysql/mysqld.sock' --pid-file='/tmp/testmysql/pid'
Run Code Online (Sandbox Code Playgroud)
但是当我尝试像这样设置 root 密码时(我相信在这种情况下 --user 指的是 mysql 用户,而不是 linux 用户):
$ mysqladmin --no-defaults --port=3308 --user=root --password='' password 'somenewpassword'
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
Run Code Online (Sandbox Code Playgroud)
安装时,root@localhost
没有密码。
只需执行以下操作,您就应该能够在没有密码的情况下进行连接:
$ mysql -uroot
Run Code Online (Sandbox Code Playgroud)
请尝试以下操作:
$ mysqladmin --no-defaults --port=3308 --user=root password 'somenewpassword'
Run Code Online (Sandbox Code Playgroud)
或者你可以用顽固的方式做到:
$ service mysql restart --skip-grant-tables --skip-networking
$ mysql -e"UPDATE mysql.user SET password=password('somenewpassword') WHERE user='root'"
$ service mysql restart
$ mysql -uroot -p
Run Code Online (Sandbox Code Playgroud)
对不起,我忽略了端口号。
问题是:除非您使用 TCP/IP 协议,否则您不能对非 3306 端口使用 root@localhost。请试试这个:
$ mysqladmin --no-defaults --port=3308 --user=root --protocol=tcp password 'somenewpassword'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
18131 次 |
最近记录: |