位置:首页 > 数据库 > MySQL在线教程 > MySQL管理

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的数据库管理系统的性能和统计数据的详细信息。