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;












网友评论