数据库命令和连接mysql服务器
今天上午,需要我把一个.sql文件导入到远程主机上。当时我想用source 命令想把它导入进去,但是利用mysql>mysql -h远程主机ip -u远程主机用户名 -p远程主机密码 连接到远程主机上的时候死活都连接不上,老是给我报错。真是气煞我也!mysql> mysql -h111.11.1.111 -uroot -p111;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'mysql
-h111.11.1.111 -uroot -p111' at line 1就是这个错误,说是sql语法有错误.我真的不知道哪里错了啊,h u p 和后面的信息是否有空格,我都试了,可就是不正确。那我就用第二种办法呗,
但是在这里还是没办法用source命令,不知道是不是因为我把数据库sql文件放在了本地电脑e盘中,而在远程服务器的那台电脑中没有sql文件的缘故吗。哪位大侠要是知道的话,就给俺这菜鸟指点一二吧,谢过哈! 最终,木办法,只好用了最笨的方法咯,就是先把sql文件导入到本地的mysql数据库中,然后备份,最后在远程数据库中恢复备份。这才算是搞定!我在网上也百度了,同事也问了,到最后的解决办法还是这一个笨方法。如果高人您有好办法,请给俺说说吧。。。
一、连接MySQL。
格式: mysql -h主机地址 -u用户名 -p用户密码
1、例1:连接到本机上的MYSQL。
首先在打开 DOS 窗口,然后进入目录 mysql bin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好 MySQL,超级用户 root 是没有密码的,故直接回车即可进入到 MySQL 中了,MySQL 的提示符是:mysql>
2、例2:连接到远程主机上的 MySQL。
假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:
mysql -h110.110.110.110 -uroot -pabcd123
(注:u与root可以不用加空格,其它也一样)
例如:
c:\Program Files\MySQL\MySQL Server 5.5\bin>mysql -h172.16.1.245 -uroot -p
Enter password: *************
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 55276
Server version: 5.5.13-log Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>show databases;
mysql>use baw_1;
mysql>source d:/a.sql;//以免手误打错路径,可以写完source之后,然后把文件拖过来放在后面,这样路径就自己跑上去啦。
3、退出 MySQL 命令: exit (回车)
二、修改密码。
格式:mysqladmin -u用户名 -p旧密码 password 新密码
1、例1:给root加个密码ab12。首先在DOS下进入目录mysqlbin,然后键入以下命令
mysqladmin -uroot -password ab12
注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
2、例2:再将root的密码改为djg345。
mysqladmin -uroot -pab12 password djg345
三、增加新用户。
(注意:和上面不同,下面的因为是 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 "";
在上篇我们讲了登录、增加用户、密码更改等问题。下篇我们来看看MYSQL中有关数据库方面的操作。注意:你必须首先登录到MYSQL中,以下操作都是在MYSQL的提示符下进行的,而且每个命令以分号结束。
一、操作技巧
1、如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束标志就OK。
2、你可以使用光标上下键调出以前的命令。但以前我用过的一个MYSQL旧版本不支持。我现在用的是mysql-3.23.27-beta-win。
二、显示命令
1、显示数据库列表。
show databases;
刚开始时才两个数据库:mysql 和 test。mysql 库很重要它里面有 MySQL 的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。
2、显示库中的数据表:
use mysql; //打开库,学过 FOXBASE 的一定不会陌生吧
show tables;
3、显示数据表的结构:
describe 表名;
4、建库:
create database 库名;
5、建表:
use 库名;
create table 表名 (字段设定列表);
6、删库和删表:
drop database 库名;
drop table 表名;
7、将表中记录清空:
delete from 表名;
8、显示表中的记录:
select * from 表名;
三、一个建库和建表以及插入数据的实例
drop database if exists school; //如果存在SCHOOL则删除
create database school; //建立库SCHOOL
use school; //打开库SCHOOL
create table teacher //建立表TEACHER
(
&nbs