●刷新用户授权信息
mysql> flush privileges;
●删除MySQL的空用户
mysql> delete from mysql.user where user='';
●显示数据库结构
mysql> show database;
mysql> show tables;
●显示数据表的结构
DESCRIBE [数据库名.]表名
mysql> use mysql;
mysql> describe user;
●创建新的数据库
CREATE DATABASE数据库名
mysql> create database mydb;
●创建新的数据表
CREATE TABLE表名(字段定义……)
mysql> CREATE TABLE users (user_name CHAR(30) NOT NULL, user_password CHAR(20) NOT NULL DEFAULT '123456', PRIMARY KEY (user_name));
●修改表名
alter table表名rename to新表名
●删除一个数据表
DROP TABLE [数据库名.]表名
mysql> drop table mydb.users;
●删除一个数据库
DROP DATABASE数据库名
mysql> drop database mydb;
●插入数据记录
INSERT INTO表名(字段1,字段2,……) VALUES(字段1的值,字段2的值,……)
mysql> insert into mydb.users(user_name,user_password) values('zhangsan',encrypt('123456'));
●查询数据记录
SELECT字段名1,字段名2……FROM表名WHERE条件表达式
mysql> select * from mydb.users;
mysql> select user_name,user_password from mydb.user where user_name='zhangsan';
●修改
数据记录
UPDATE表名SET字段名1=字段值1[,字段名2=字段值2] WHERE条件表达式
mysql> update mydb.users set user_password=encrypt('123123') where user_name='list';
●删除数据记录
DELETE FROM表名WHERE条件表达式
mysql> delete from mydb.users where user_name='lisi';
●数据库的备份
mysqldump -u [用户名] -p [密码] [options] [数据库名] [表名] > /备份路径/备份文件名
#备份整个mydb数据库
mysqldump -u root -p mydb > mysql-mydb.sql
#备份mysql数据库中的host表、user表
mysqldump -u root -p mysql host user > mysql.host-user.sql
#备份MySQL服务器中所有数据库
mysqldump -u root -p --all-databases > mysql-all.sql
●恢复数据库
mysql -u root -p [数据库名] < /备份路径/备份文件名
mysql -u root -p < mysql-all.sql
mysql -u root -p mydb < mysql-mydb.sql
●授予权限
GRANT权限列表ON数据库名.表名TO用户名@来源地址[ IDENTIFIED BY '密码' ]
mysql> grant select on mysql.user to admin@'localhost' identified by 'pw123';
mysql> grant all on mydb.* to admin1@'localhost' identified by '123456';
mysql> grant select on mydb.* to admin2@'192.168.0.0/24' identified by '123456';
mysql> grant select,insert on mydb.* to admin3@'%.benet.com' identified by 'pw456';
●查看权限
SHOW GRANTS FOR用户名@域名或IP
mysql> show grants for root@'localhost';
●撤销权限
REVOKE权限列表on数据库名.表名from用户名@域名或者IP
revoke all on mydb.* from admin3@'%.benet.com';
=======================
重置MySQL的root用户密码
●已经知道mysql数据库的root密码
#方法一:在shell环境中,使用mysqladmin命令设置(需要知道原密码)
[root@CentOS ~]# mysqladmin -u root -p password "123456"
#方法二:在“mysql>”环境中,使用update命令,直接更新mysql库user表的数据
[root@CentOS ~]# mysql -u root -p
mysql> update mysql.user set password=password('123456') where user='root';
mysql> flush privileges;
#方法三:在“mysql>”环境中,使用grant命令,修改root用户的授权权限。
mysql>GRANT ALL ON *.* TO root@'localhost' IDENTIFIED BY '123456';
●忘记mysql数据库的root用户的密码
#关闭mysql服务
service mysqld stop
#或者
killall mysqld
#使用myslq_safe脚本以安全模式(不加载授权表)启动mysqld服务(数据库位非默认值需要用--datadir指定)
/usr/local/mysql/bin/mysqld_safe --skip-grant-table --datadir=/var/mysql/data &
#使用空密码的root用户登录数据库,重新设置root的密码
[root@CentOS ~]# mysql -u root
mysql> update mysql.user set password=password('123456') where user='root';
mysql> flush privileges;