MySql数据库 本地网络内的电脑能连接,外网IP不能连接

MySql数据库 本地网络内的电脑能连接,外网IP不能连接,第1张

/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;

mysql -h mysql-server-ip -u mysql-username -p

如:

mysql -h 192.168.1.101 -u root -p

补充:

登录mysql数据库,依次执行以下语句看看(每行一个)

use mysql

select * from user where host = "%"

如果有记录的话,你就可以用那个用户名远程登录,如果有密码的话,当然也要正确。

如果没有的话,那就建一个可以远程访问的用户。

增加可以远程访问DatabaseName的用户UserName(所有权限,包括新建、更新、删除等权限),密码是UserPassword:

grant all privileges to "UserName"@"%" on DatabaseName.* identified by "UserPassword" with grant options

增加可以远程访问“所有数据库”的用户UserName(所有权限,包括新建、更新、删除等权限),密码是UserPassword:

grant all privileges to "UserName"@"%" on *.* identified by "UserPassword" with grant options

一) 连接MYSQL:

格式: mysql -h主机地址 -u用户名 -p用户密码

1、例1:连接到本机上的MYSQL

首先在打开DOS窗口,然后进入mysql安装目录下的bin目录下,例如: D:\mysql\bin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql>

2、例2:连接到远程主机上的MYSQL

假设远程主机的IP为:10.0.0.1,用户名为root,密码为123。则键入以下命令:

mysql -h10.0.0.1 -uroot -p123

(注:u与root可以不用加空格,其它也一样)

3、退出MYSQL命令

exit (回车)

(二) 修改密码:

格式:mysqladmin -u用户名 -p旧密码 password 新密码

1、例1:给root加个密码123。首先在DOS下进入目录C:\mysql\bin,然后键入以下命令:

mysqladmin -uroot -password 123

注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。

2、例2:再将root的密码改为456

mysqladmin -uroot -pab12 password 456

(三) 增加新用户:(注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符)

格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码"

例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL,然后键入以下命令:

grant select,insert,update,delete on *.* to test1@"%" Identified by "abc"

但例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2。

例2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的 *** 作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。

grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc"

如果你不想test2有密码,可以再打一个命令将密码消掉。

grant select,insert,update,delete on mydb.* to test2@localhost identified by ""

(四) 显示命令

1、显示数据库列表:

show databases

刚开始时才两个数据库:mysql和test。mysql库很重要它里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行 *** 作。

2、显示库中的数据表:

use mysql; //打开库

show tables

3、显示数据表的结构:

describe 表名

4、建库:

create database 库名

5、建表:

use 库名;

create table 表名 (字段设定列表);

6、删库和删表:

drop database 库名

drop table 表名;

7、将表中记录清空:

delete from 表名

8、显示表中的记录:

select * from 表名

MySQL导入导出命令

1.导出整个数据库

mysqldump -u 用户名 -p 数据库名 >导出的文件名

mysqldump -u wcnc -p smgp_apps_wcnc >wcnc.sql

2.导出一个表

mysqldump -u 用户名 -p 数据库名 表名>导出的文件名

mysqldump -u wcnc -p smgp_apps_wcnc users>wcnc_users.sql

3.导出一个数据库结构

mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:wcnc_db.sql

-d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table

4.导入数据库

常用source 命令

进入mysql数据库控制台,

如mysql -u root -p

mysql>use 数据库

然后使用source命令,后面参数为脚本文件(如这里用到的.sql)

mysql>source d:wcnc_db.sql (注:如果写成source d:\wcnc_db.sql,就会报语法错误


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/7424997.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-05
下一篇2023-04-05

发表评论

登录后才能评论

评论列表(0条)

    保存