登录MySQL
# mysql -uroot -p
如果无法登录可以使用find / -name mysql搜索mysql程序的路径,比如mysql程序路径为:/usr/local/mysql/bin/mysql,我们可以这样登录:
#/usr/local/mysql/bin/mysql -uroot -p
执行如下命令:
#grant all privileges on *.* to ‘root’@’192.168.0.1′ identified by ‘ROOT-PASSWORD’
#flush privileges
#exit
192.168.0.1是连接mysql服务器的客户端ip,如果指定所有,则用%来表示。
1、登陆mysqlmysql -u root -p
2、改表法:修改mysql库的user表,将host项,从localhost改为%。%这里表示的是允许任意host访问,如果只允许某一个ip访问,则可改为相应的ip,比如可以将localhost改为192.168.1.123,这表示只允许局域网的192.168.1.123这个ip远程访问mysql。
mysql>USE MYSQLmysql>UPDATE USER SET host = '%' WHERE user = 'root'
3、授权法:
mysql>USE MYSQLmysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION //赋予任何主机访问以及修改所有数据的权限 例如,你想root用户使用root从任何主机连接到mysql服务器的话。GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION如果你想允许用户root从ip为192.168.1.123的主机连接到mysql服务器,并使用root作为密码GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.123'IDENTIFIED BY 'root' WITH GRANT OPTIONmysql>FLUSH PRIVILEGES //
设置mysql服务允许外网访问,修改mysql的配置文件,有的是my.ini,有的是my.cnf【linux】.1:设置mysql的配置文件
/etc/mysql/my.cnf
找到 bind-address =127.0.0.1 将其注释掉;//作用是使得不再只允许本地访问;
重启mysql:/etc/init.d/mysql restart
2:登录mysql数据库:mysql -u root -p
mysql>use mysql
查询host值:
mysql>select user,host from user
如果没有"%"这个host值,就执行下面这两句:
mysql>update user set host='%' where user='root'
mysql>flush privileges
或者也可以执行:
mysql>grand all privileges on *.* to root@'%' identifies by ' xxxx'
其中 第一个*表示数据库名;第二个*表示该数据库的表名;如果像上面那样 *.*的话表示所有到数据库下到所有表都允许访问;
‘%':表示允许访问到mysql的ip地址;当然你也可以配置为具体到ip名称;%表示所有ip均可以访问;
后面到‘xxxx'为root 用户的password;
举例:
任意主机以用户root和密码mypwd连接到mysql服务器
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypwd' WITH GRANT OPTION
mysql>flush privileges
IP为192.168.1.102的主机以用户myuser和密码mypwd连接到mysql服务器
mysql>GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.102' IDENTIFIED BY 'mypwd' WITH GRANT OPTION
mysql>flush privileges
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)