美文网首页Mac/Linux服务器
mysql重置密码与开放远程登录

mysql重置密码与开放远程登录

作者: 塘朗山小钻风 | 来源:发表于2019-07-13 22:39 被阅读0次

1. 忘了密码需要重置密码:

Mac这样的BSD机器命令和Linux的有些不一样。下面两个命令很重要:

netstat -ant | grep 3306

tcp46 0 0 *.33060 *.* LISTEN

tcp4 0 0 127.0.0.1.3306 *.* LISTEN

在这上面看的监听的是本地回环地址,所以无法远程使用mysql。
ps aux | grep mysql

/usr/local/opt/mysql/bin/mysqld --basedir=/usr/local/opt/mysql ...

/bin/sh /usr/local/opt/mysql/bin/mysqld_safe --datadir=/usr/local/var/mysql

看到主要是两个进程在工作。

需先关掉mysql应用。直接杀进程是没用的。mysql服务会不断拉起进程。需要停掉服务。

brew services stop mysql (Linux上是service mysql stop)

再以我们自定义的方式启动mysql daemon。注意在后面附加的参数。这个参数可以让用户不用密码登录进去

sudo /usr/local/opt/mysql/bin/mysqld_safe --datadir=/usr/local/var/mysql --skip-grant-tables

下面开始进入mysql修改密码了。

mysql [-h 127.0.0.1] -uroot -p  #提示输入密码时直接按回车就可以了

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('admin');

FLUSH PRIVILEGES;

再关闭mysql进程。再正常方式开启mysql: brew services start mysql。如果需要开发mysql远程登录使用。在重启服务前可以完成下面的设置。

2. 开启远程登录:

因为监听本地回环地址127.0.0.1所以无法远程登录。需要修改它的

bind-address = 0.0.0.0

先查找关于它的配置:grep -r "basedir" /usr/local/opt/mysql/bin/

注意下面一段

basedir=/usr/local/Cellar/mysql/8.0.12

if test -r "$basedir/my.cnf"

extra_args="-e $basedir/my.cnf"

cd $basedir

其实在basedir目录下面的 .bottle/etc/下有my.cnf

在这里面增加配置。bind-address = 0.0.0.0。拷贝到basedir目录下面。

重启mysql服务。

再执行netstat -ant | grep 3306应该看到 *.3306 就可以了。这还没完成。需要再登录mysql执行如下语句:

update mysql.user set host='%' where user='root';#原来的host是localhost只能本地登录。%可远程登录

flush privileges;

相关文章

网友评论

    本文标题:mysql重置密码与开放远程登录

    本文链接:https://www.haomeiwen.com/subject/kkcvkctx.html