MySQL管理
运行和关闭MySQL服务器
首先检查MySQL服务器正在运行与否。在Linux系统下可以使用下面的命令来检查:
ps -ef | grep mysqld
如果MySQL正在运行,那么会看到列出来的 mysqld 进程。如果服务器没有运行,那么可以使用下面的命令来启动它:
root@host# cd /usr/bin ./safe_mysqld &
现在,如果想关闭一个已经运行的 MySQL 服务器,那么可以使用下面的命令做到这一点:
root@host# cd /usr/bin ./mysqladmin -u root -p shutdown Enter password: ******
设置MySQL用户帐户
要添加一个新用户到MySQL,只需要在数据库中的新记录添加到用户表:mysql.
下面是添加新用户:guest 的例子,给定 SELECT, INSERT and UPDATE权限和使用密码:guest123; SQL 查询是:
D:\software\mysql-5.6.25-winx64\bin> mysql -u root -p Enter password: mysql> use mysql; Database changed mysql> INSERT INTO user (host, user, password, select_priv, insert_priv, update_priv) VALUES ('localhost', 'guest', PASSWORD('guest123'), 'Y', 'Y', 'Y'); Query OK, 1 row affected (0.20 sec) mysql> FLUSH PRIVILEGES; Query OK, 1 row affected (0.01 sec) mysql> SELECT host, user, password FROM user WHERE user = 'guest'; +-----------+---------+------------------+ | host | user | password | +-----------+---------+------------------+ | localhost | guest | 6f8c114b58f2ce9e | +-----------+---------+------------------+ 1 row in set (0.00 sec)
当要添加一个新用户,记得要PASSWORD()函数加密MySQL新使用密码。正如在上面的例子中看到密码为mypass,进行加密后为:6f8c114b58f2ce9e.
注意最后要使用FLUSH PRIVILEGES语句。 这告诉服务器重新加载授权表。如果不使用它,那么将无法使用新的用户帐户连接到MySQL服务器,至少在服务器重新启动后才可以。
也可以通过在用户设置表以下几列的值为'Y',指定给新用户的权限,在执行INSERT查询后,也可以在以后使用UPDATE查询更新它们。主要权限如下所列:
-
Select_priv
-
Insert_priv
-
Update_priv
-
Delete_priv
-
Create_priv
-
Drop_priv
-
Reload_priv
-
Shutdown_priv
-
Process_priv
-
File_priv
-
Grant_priv
-
References_priv
-
Index_priv
-
Alter_priv
添加用户帐户的另一种方式是通过使用GRANT SQL命令; 下面的例子将增加用户zara 并使用密码zara123 为特定数据库:TUTORIALS.
D:\software\mysql-5.6.25-winx64\bin> mysql -u root -p password; Enter password: mysql> use mysql; Database changed mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP -> ON TUTORIALS.* -> TO 'zara'@'localhost' -> IDENTIFIED BY 'zara123';
这也将创建一条记录在MySQL数据库中的表: user.
注意: MySQL不会终止命令,直到给一个分号(;)在SQL命令的结尾。
/etc/my.cnf 文件配置
大多数情况下,不应该碰这个文件(window下可根据实际情况配置)。默认情况下,它会具有以下项:
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock [mysql.server] user=mysql basedir=/var/lib [safe_mysqld] err-log=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
在这里,可以指定错误日志为其它的目录,否则不应该更改此文件中的任何内容。
管理 mysql 命令
这里是重要的MySQL命令,经常在MySQL数据库的管理或工作中使用:
-
USE Databasename : 用于选择在MySQL工作区指定的数据库。
-
SHOW DATABASES: 列出了MySQL数据库管理系统中的所有可访问的数据库。
-
SHOW TABLES: 显示已经选择数据库中的表的命令。
-
SHOW COLUMNS FROM tablename: 显示属性,属性类型,关键信息,NULL是否被允许,默认值和其它的表信息。
-
SHOW INDEX FROM tablename: 提供所有指标的详细信息表,其中包括PRIMARY KEY.
-
SHOW TABLE STATUS LIKE tablename\G: 报告MySQL的数据库管理系统的性能和统计数据的详细信息。