MySQL的一些常用基本命令的使用说明
这里整理一下MySQL的一些常用命令的使用方法。
连接到服务器
要使用数据库要先连接到MySQL,在Windows中可以在DOS窗口中进入 MySQL\bin 目录,当然设置环境变量也可以直接在任何目录中进行,输入
mysql -u root -p
然后就会提示你输入密码。
当然在这之前你要确定自己MySQL已经启动了,用net start mysql
命令启动mysql服务,用net stop mysql
命令停止mysql服务(当然命令需要管理员权限)。
如果是在Linux可以使用
systemctl start mysql
启动mysql服务,systemctl status mysql
mysql 状态信息,systemctl restart mysql
重新启动mysql服务,systemctl stop mysql
停止mysql服务。
当然在Windows中也可以直接打开MySQL的程序,会直接让你输入密码。
如果在你安装后没有对root用户进行设置是没有密码的,直接回车就进去了。
这里还要给出一些和mysql一起使用的命令行参数
MySQL命令行参数
参数 | 描述 |
---|---|
-A | 禁止自动重新生成哈希表 |
-b | 禁用出错的beep声 |
-B | 不使用历史文件 |
-C | 压缩客户端和服务器之间发送的所有信息 |
-D | 制定要用的数据库 |
-e | 制定执行语句并退出 |
-E | 竖直方向显示查询输出,每一行一个字段 |
-f | 如果有SQL错误继续执行 |
-G | 使能命名命令的使用 |
-h | 指定MySQL服务器主机名(默认localhost) |
-H | 用HTML代码显示查询结果 |
-i | 忽略函数名后的空格 |
-N | 结果中不显示列名称 |
-o | 忽略语句,除了在命令行上命名的默认数据库的语句 |
-p | 为用户帐户提示输入命令 |
-P | 指定网络连接用的TCP端口号 |
-q | 不缓存每条查询结果 |
-r | 显示列输出,不转义 |
-s | 使用安静模式 |
-S | 为本地(localhost)连接指定一个套接字 |
-t | 以表的形式显示输出 |
-T | 在程序退出时显示调试信息、内存以及CPU统计信息 |
-u | 指定登录用户名 |
-U | 只允许指定了键值的UPDATE和DELETE语句 |
-v | 使用详细模式 |
-w | 如果连接没有完成,等待并重试 |
-X | 用XHTML代码显示查询输出 |
连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:
mysql -h 110.110.110.110 -u root -p 123;
(注:u与root之间可以不用加空格,其它也一样)
在你输入用户对应的密码,就登录上了服务器,接下来就可以输入命令了。
MySQL命令
除了标准SQL命令,还有一些mysql特殊的命令在下面先列出。
MySQL命令
命令 | 简单指令 | 描述 |
---|---|---|
? | ? | 帮助信息 |
clear | \c | 清空命令 |
connect | \r | 连接到数据库和服务器 |
delimiter | \d | 设置SQL语句分隔符 |
edit | \e | 用命令行编辑器编辑命令 |
ego | \G | 将命令发送到MySQL服务器并垂直显示结果 |
exit | \q | 退出mysql程序 |
go | \g | 将命令发送到MySQL服务器 |
help | \h | 显示帮助信息 |
nopager | \n | 禁用输出分页将输出发送到STDOUT |
note | \t | 不要将输出发送到输出文件 |
pager | \P | 将分页命令设为指定的程序(默认是more) |
\p | 打印当前命令 | |
prompt | \R | 修改mysql命令提示符 |
quit | \q | 退出mysql程序(同exit) |
rehash | \# | 重新构建命令补全哈希表 |
source | \. | 执行指定文件中的SQL脚本 |
status | \s | 从MySQL服务器提取状态信息 |
system | \! | 在系统上执行shell命令 |
tee | \T | 将所有输出附加到指定文件中 |
use | \u | 使用另一个数据库 |
charset | \C | 切换到另一个数据库 |
warnings | \W | 在每条语句之后显示警告信息 |
nowrning | \w | 不要在每条语句之后显示警告信息 |
修改密码
格式:mysqladmin -u 用户名 -p 旧密码 password 新密码
1、给root加个密码123。
首先在DOS下进入目录mysql\bin,然后键入以下命令
mysqladmin -u root -password 123
注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
2、再将root的密码改为123345。
mysqladmin -u root -p 123 password 12345
跳过登录验证
在Windows系统中在my.ini文件的末尾添加
skip_grant_tables
,文件就在你安装MySQL的目录下,你可以在你安装MySQL的目录下使用命令notepad my.ini
弹出记事本,在末尾添加一行。
在Linux系统中你可以使用命令
vi /etc/my.cnf
,在文件末尾添加skip-grant-tables
最后都重启服务,对密码进行修改,修改密码后,不要忘记再将配置文件中新添加的最后一行删除。
添加新用户
格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”
1、增加一个用户staff1密码为123,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用root用户连入MYSQL,然后键入以下命令:
grant select,insert,update,delete on *.* to [email=staff1@”%]staff1@”%[/email]” identified by “123";
但增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了。
2、增加一个用户staff2密码为123,让他只可以在localhost上登录,并可以对数据库data进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道staff2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。
grant select,insert,update,delete on data.* to [email=staff2@localhost]staff2@localhost[/email] identified by “123”;
创建数据库
命令:create database 数据路名;
例1:创建一个叫data的数据库
mysql> create database data;
例2:创建数据库并分配用户
①create database 数据库名;
②grant select,insert,update,delete,create,drop,alter on 数据库名.* to 数据库名@localhost identified by '密码';
③set password for '数据库名'@'localhost' = old_password('密码');
依次执行3个命令完成数据库创建。注意:中文 “密码”和“数据库”是户自己需要设置的。
显示数据库
命令:show databases
mysql> show databases;
注意:为了不再显示的时候乱码,要修改数据库默认编码。以下以GBK编码页面为例进行说明:
1、修改MYSQL的配置文件:my.ini里面修改default-character-set=gbk
2、代码运行时修改:
①Java代码:jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk
②PHP代码:header("Content-Type:text/html;charset=gb2312");
③C语言代码:int mysql_set_character_set( MYSQL * mysql, char * csname);
该函数用于为当前连接设置默认的字符集。字符串csname指定了1个有效的字符集名称。连接校对成为字符集的默认校对。该函数的工作方式与SET NAMES语句类似,但它还能设置mysql- > charset的值,从而影响了由mysql_real_escape_string() 设置的字符集。
删除数据库
命令:drop database 数据库名
例如:删除名为data的数据库
mysql> drop database data;
例子1:删除一个已经确定存在的数据库
mysql> drop database data;
Query OK, 0 rows affected (0.61 sec)
例子2:删除一个不确定存在的数据库
mysql> drop database data;
ERROR 1008 (HY000): Can't drop database 'data'; database doesn't exist
//不能够删除数据库'data';数据库不存在
mysql> drop database if exists drop_database;
Query OK, 0 rows affected (0.00 sec)
//if exists 判断数据库是否存在,不存在也不产生错误
连接数据库
未完待续...