
问题:最近开始用mysql8,结果发现在sql语法比之前的版本严格了许多。。此处先解决授权sql报错问题,报错如下
mysql>grant all on dev1_test1.* to dev1@'%' identified by '12345678'
ERROR 1064 (42000): You have an error in your SQL syntaxcheck the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by '12345678'' at line 1
解决:mysql8 要求先建用户,后授权
然后打开mysql默认的3306端口
然后允许使用旧的密码验证方式:
最后 sqlyog就可以远程登陆了。
如果先安装了一个版本的,再安装新版本,需要先把旧版本的数据删除,否则启动不起来,重点是删除 /var/lib/mysql下的所有文件
select @@validate_password_policy
set global validate_password_policy=0
update mysql.user set authentication_string=password('new password') where user='root'
允许root 远程登录:
grant all privileges on . to 'root'@'%' identified by 'password' with grant option
select host,user from user where user='root'
flush privileges
开启MySQL的远程登陆帐号有两大步:1、确定服务器上的防火墙没有阻止3306端口。MySQL默认的端口是3306,需要确定防火墙没有阻止3306端口,否则远程是无法通过3306端口连接到MySQL的。如果您在安装MySQL时指定了其他端口,请在防火墙中开启您指定的MySQL使用的端口号。如果不知道怎样设置您的服务器上的防火墙,请向您的服务器管理员咨询。2、增加允许远程连接MySQL用户并授权。1)首先以root帐户登陆MySQL在Windows主机中点击开始菜单,运行,输入“cmd”,进入控制台,MySQL的bin目录下,然后输入下面的命令。--skip-name-resolve选项启动mysqld来禁用DNS主机名查找。只是处理连接可能慢的问题。
要设置远程登陆:
默认情况下,mysql只允许本地登录,如果要开启远程连接,则需要修改/etc/mysql/my.conf文件。
一、修改/etc/mysql/my.conf
找到bind-address = 127.0.0.1这一行
改为bind-address = 0.0.0.0即可
二、为需要远程登录的用户赋予权限管理用户
1、新建用户远程连接mysql数据库
grant all on *.* to admin@'%' identified by '123456' with grant option
flush privileges
允许任何ip地址(%表示允许任何ip地址)的电脑用admin帐户和密码(123456)来访问这个mysql server。
注意admin账户不一定要存在。
2、支持root用户允许远程连接mysql数据库
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option
flush privileges
三 , 访问地址到 mysql服务器 端口是通的。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)