日期:2014-05-16  浏览次数:20545 次

数据库命令和连接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