本文讲述一下mysql数据库的一些基础知识及相关操作。当前的数据库版本为:5.7.22 MySQL Community Server (GPL)
1. MySQL数据库
MySQL数据库是一个关系型数据库管理系统
,由瑞典MySQL AB公司开发,目前属于Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在WEB应用等方面,MySQL是最好的RDBMS(Relational Database Managerment System)应用软件。
在MySQL5.0
之前,默认采用MyISAM
作为存储引擎,具有较高的查询和插入速度,但不支持事务; 从MySQL5.5
起,采用InnoDB
作为默认的存储引擎,支持ACID事务,支持行级锁定。
2. MySQL管理
2.1 MySQL的启动与关闭
我们可以通过如下的命令来检查MySQL服务器是否启动:
# ps -ef | grep mysqld
mysql 2299 1 0 Aug10 ? 00:27:55 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
通过上面我们看到,MySQL已经启动。如果mysql未启动,我们可以采用如下的方式来启动:
2.2 查询MySQL版本号
查询mysql版本号的方法有多种。
1) 在可登录Mysql控制台时
在控制台登录mysql时,可以看到版本号:
也可以通过status
命令来查看:
另外也可以通过系统函数version()
来查询:
2) 在不可登录MySQL控制台时
我们可以通过如下命令查看:
也可以通过查看安装包版本来查看:
2.3 MySQL用户设置
1) 添加用户
如果需要添加MySQL用户,你只需要在MySQL数据库中的user表添加新用户即可。以下为添加用户的实例,用户名为guest
,密码为guest123
,并授权用户可进行SELECT
、INSERT
和UPDATE
操作权限:
这里注意在添加完用户之后需要执行FLUSH PRIVILEGES;
语句,这个命令执行后会重新载入授权表。如果不使用该命令,你就无法使用新创建的用户来连接mysql服务器,除非你重启mysql服务器。
你可以在创建用户时,为用户指定权限,在对应的权限列中,在插入语句中设置为'Y'
即可,用户权限列表如下:
Select_priv: 用户可以通过SELECT命令选择数据。
Insert_priv: 用户可以通过INSERT命令插入数据;
Update_priv: 用户可以通过UPDATE命令修改现有数据;
Delete_priv: 用户可以通过DELETE命令删除现有数据;
Create_priv: 用户可以创建新的数据库和表;
Drop_priv: 用户可以删除现有数据库和表;
Reload_priv: 用户可以执行刷新和重新加载MySQL所用各种内部缓存的特定命令,包括日志、权限、主机、查询和表;重新加载权限表;
Shutdown_priv: 用户可以关闭MySQL服务器;在将此权限提供给root账户之外的任何用户时,都应当非常谨慎;
Process_priv: 用户可以通过SHOW PROCESSLIST命令查看其他用户的进程;服务器管理;
File_priv: 用户可以执行SELECT INTO OUTFILE和LOAD DATA INFILE命令;加载服务器上的文件;
Grant_priv: 用户可以将已经授予给该用户自己的权限再授予其他用户(任何用户赋予全部已有权限);
References_priv: 目前只是某些未来功能的占位符;现在没有作用;
Index_priv: 用户可以创建和删除表索引;用索引查询表;
Alter_priv: 用户可以重命名和修改表结构;
Show_db_priv: 用户可以查看服务器上所有数据库的名字,包括用户拥有足够访问权限的数据库;可以考虑对所有用户禁用这个权限,除非有特别不可抗拒的原因;
Super_priv: 用户可以执行某些强大的管理功能,例如通过KILL命令删除用户进程,使用SET GLOBAL修改全局MySQL变量,执行关于复制和日志的各种命令;超级权限;
Create_tmp_table_priv: 用户可以创建临时表;
Lock_tables_priv: 用户可以使用LOCK TABLES命令阻止对表的访问/修改;
Execute_priv: 用户可以执行存储过程;此权限只在MySQL 5.0及更高版本中有意义;
Repl_slave_priv: 用户可以读取用于维护复制数据库环境的二进制日志文件;此用户位于主系统中,有利于主机和客户机之间的通信;主服务器管理;
Repl_client_priv: 用户可以确定复制从服务器和主服务器的位置;从服务器管理;
Create_view_priv: 用户可以创建视图;此权限只在MySQL 5.0及更高版本中有意义;
Show_view_priv: 用户可以查看视图或了解视图如何执行;此权限只在MySQL 5.0及更高版本中有意义;
Create_routine_priv: 用户可以更改或放弃存储过程和函数;此权限是在MySQL 5.0中引入的;
Alter_routine_priv: 用户可以修改或删除存储函数及函数;此权限是在MySQL 5.0中引入的;
Create_user_priv: 用户可以执行CREATE USER命令,这个命令用于创建新的MySQL账户;
Event_priv: 用户能否创建、修改和删除事件;这个权限是MySQL 5.1.6新增的;
Trigger_priv: 用户能否创建和删除触发器,这个权限是MySQL 5.1.6新增的;
Create_tablespace_priv: 创建表空间
另外一种添加用户的方法为通过MySQL的GRANT
命令,以下命令会给指定数据库TUTORIALS
添加用户zara
,密码为zaraAa@123
:
另外一种添加用户的方法为通过SQL的 GRANT 命令,以下命令会给指定数据库TUTORIALS添加用户 zara ,密码为 zara123 。
2) 删除用户
我们可以通过如下的方式删除上面添加的两个用户zara
和guest
:
2.4 MySQL配置文件
MySQL的配置文件为/etc/my.cnf
,一般情况下,不需要修改该配置文件,该文件默认配置如下:
2.5 管理MySQL的命令
下面列出了使用MySQL数据库过程中常用的命令:
- SHOW databases: 列出MySQL数据库管理系统的数据库列表
- SHOW tables: 用于显示指定数据库的所有表,使用该命令前需要使用
use
命令来选择要操作的数据库
- SHOW COLUMNS FROM <table>: 显示数据表的属性,属性类型,主键信息,是否为NULL,默认值等其他信息
- SHOW CREATE TABLE <table>: 查看创建数据库表的语句
- SHOW INDEX FROM <table>: 显示数据表的详细索引信息,包括
PRIMARY KEY
(主键)
- SHOW TABLE STATUS LIKE[FROM ] [LIKE 'pattern'] \G: 该命令将输出MySQL数据库管理系统的性能及统计信息
[参看]:
-
MySQL基础
-
mySQL
-
MySQL用户权限(Host,User,Password)管理(mysql.user)
-
MySQL教程