To learn from scratch MySQL-- database management --003

Getting MySQL access control system

MySQL access control consists of two parts

  • Verify connection: Use a valid username and password to log in operation
  • Verify the implementation: each SQL statement to be executed, MySQL checks the logged-on user has sufficient rights to perform the statement

Permissions position

mysql database contains five main grant tables

  • user table: Contains user accounts and global privileges columns. We used to log user information are stored in it.

  • db table: Includes database-level privileges.

  • table_priv and columns_priv table: Contains table-level and column-level permissions.

  • procs_priv Table: Contains permissions stored functions and stored procedures.

Create a user account

create user yourName identified by 'password';

create user yl@localhost identified by 'yl';--新建本地账户
create user yl@% identified by 'yl';--新建远程和本地通用账户
create user yl@192.168.0.110 identified by 'yl';--新建远程ip制定账户

--查看账户权限
show grants for yl@localhost;

---GRANT USAGE ON *.* TO 'yl'@'localhost' IDENTIFIED BY PASSWORD '*密文密码'

--*.* 显示 yl 用户帐户只能登录到数据库服务器, 没有其他权限
--两个星号的区别:前者表示数据库, 后者表示表

--刷新权限、在删除账户,新建账户并授权之后
flush privileges; 

Granted permission

GRANT privilege,[privilege],.. ON privilege_level
TO user [IDENTIFIED BY password]
[REQUIRE tsl_option]
[WITH [GRANT_OPTION | resource_option]];
--授予所有权限
grant all on *.* to 'yl'@'localhost' with grant option;

show grants for yl@localhost;

--GRANT ALL PRIVILEGES ON *.* TO 'yl'@'localhost' IDENTIFIED BY PASSWORD '*密文密码' WITH GRANT OPTION

flush privileges; 

Revoke privileges

REVOKE privilege_type [(column_list)]
[, priv_type [(column_list)]]...
ON [object_type] privilege_level
FROM user [, user]...
revoke all privileges, grant option from yl;

Delete one or more user accounts

use mysql;
select user, host from mysql.user;

--删除用户,删除多个时用逗号(,)隔开
drop user 'yl@localhost';

--例外:如果删除时该用户已经连接到数据库,那么删除之后该用户仍可使用到会话结束,可以采取在删除之前先关闭用户的会话
show processlist;
kill id;--杀死id
drop user yl@localhost;

backup database

mysqldump -u [username] –p[password] [database_name] > [dump_file.sql]

[username] : 有效的MySQL用户名。
[password] : 用户的有效密码。 请注意, -p 和密码之间没有空格。
[database_name] : 要备份的数据库名称
[dump_file.sql] : 要生成的转储文件
--Mysql数据库备份指令格式:
mysqldump -h主机名  -P端口 -u用户名 -p密码 (database) 数据库名 > 文件名.sql

--1、备份MySQL数据库的命令
mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql

--2、备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
mysqldump -add-drop-table -uusername -ppassword databasename > d:\111.sql

--3、直接将MySQL数据库压缩备份
mysqldump -hhostname -uusername -ppassword databasename | gzip > d:\111.sql.gz

--4、备份MySQL数据库某个(些)表
mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > d:\111.sql

--5、同时备份多个MySQL数据库
mysqldump -hhostname -uusername -ppassword –-databases databasename1 databasename2 databasename3 > d:\111.sql

--6、仅备份数据库结构
mysqldump -uroot -proot –-no-data-databases project3 project3 project4 > d:\111.sql

--7、备份服务器上所有数据库
mysqldump -uroot -proot –-all-databases > d:\111.sql

Database recovery

There are three ways to restore the database: source command, mysql, gunzip command

source command

进入mysql数据库控制台,登录
mysql -u root -p
mysql>use 数据库
然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
mysql>source  d:\test.sql

mysql

mysql -hhostname -uusername -ppassword test < d:\test.sql

gunzip command

gunzip < d:\test.sql.gz | mysql -uusername -ppassword test

Other View command

--列出所有的数据库
show databases;

--模糊查询数据库(pro%:以pro开头;%pro:以pro结尾;%pro%:含有pro)
show databases like '%pro%';

--列出数据库下所有的表
show tables;

--列出数据库下所有的表和视图
show full tables;
create view selectAll as select * from employee;

--模糊查询表参考模糊查询数据库,二者一样

--查看表结构
describe employee;
desc employee;
show columns from employee;
show full columns from employee;
--模糊查询参看模糊查询数据库
show full columns from employee like '%pro%'

--列出所有用户
select user from mysql.user;

--显示当前登录用户
select user();
Released three original articles · won praise 10 · views 1204

Guess you like

Origin blog.csdn.net/ThrStones/article/details/104721467