常用MySQL操作
更改MySQL数据库root的密码
将绝对路径加入环境变量并设置开机启动
# PATH=$PATH:/usr/local/mysql/bin
# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
# source /etc/profile
给root用户设定密码
# mysqladmin -uroot password '123456'
root用户是MySQL自带的管理员账户,默认没有密码
连接数据库
# mysql -uroot -p'123456'
# mysql -uroot -p -h192.168.37.13 -P3306
-h 指定远程主机的IP
-P 指定远程主机MySQL的绑定端口,默认都是3306
退出时输入quit或者exit
MySQL基本操作的常用命令
mysql命令的结尾处需要加一个分号;
查询当前库
> show databases;
查询某个库的表
切换到某个库
> use mysql;
列出表
> show tables;
查看某个表的全部字段
> desc db;
想要显示更详细的信息
> show create table dbG;
G 让列出来的结果竖排显示
查看当前用户
> select user();
查看当前所使用的数据库
> select database();
创建一个新库
> create database db1;
创建一个新表
> create table t1 (`id` int(4),`name` char(40));
字段名id和name需要用反引号括起来
查看当前数据库的版本
> select version();
查看MySQL的当前状态
> show status;
中间省略信息
查看MySQL的参数
> show variables;
其中很多参数可以在/etc/my.cnf中定义,有部分参数可以在线编辑
修改MySQL的参数
> show variables like 'max_connect%';
符号%表示通配
> set global max_connect_errors=1000;
临时修改某些参数,但是重启服务后修改会失效
> show variables like 'max_connect_errors';
查看当前MySQL服务器的队列
> show processlist;
查看当前MySQL的进程,查看是否有锁表
创建一个普通用户并授权
> grant all on *.* to user1 identified by '123456';
all表示所有的权限(如读、写、查询、删除等操作);两个*,前者表示所有的数据库,后者表示所有的表;identified by后面跟密码,用单引号括起来
> grant all on db1.* to 'user2'@'192.168.37.13' identified by '111222';
给网络其他机器的某个用户授权,用户和主机IP之间有符号@
> grant all on db1.* to 'user3'@'%' identified by '231222';
主机IP可以用%替代,表示所有主机
常用的SQL语句
查询语句
第一种
> select count(*) from mysql.user;
mysql.user表示MySQL库的user表
count(*)表示表中共有多少行
第二种
> select * from mysql.db;
表示查询MySQL库的db表中的所有数据
> select db from mysql.db;
查询单个字段
> select db,user from mysql.db;
查询多个字段
> select * from mysql.db where host like '192.168.%';
在查询语句中可以使用万能匹配符%
插入一行
> insert into db1.t1 values (1,'abc');
更改表的某一行
> update db1.t1 set name='aaa' where id=1;
MySQL表里存放的数据支持更改某个字段
清空某个表的数据
> truncate table db1.t1;
不删除表,只是清空表的数据
删除表
> drop table db1.t1;
直接删除表和表内数据
删除数据库
> drop database db1;
MySQL数据库的备份与恢复
# mysqldump -uroot -p'123456' mysql > /tmp/mysql.sql
备份,重定向到一个文本文档里
# mysql -uroot -p'123456' mysql < /tmp/mysql.sql
恢复,和备份相反