请稍候,加载中....

MySQL 服务管理

如果发现本手册内容不正确,可能MySQL版本的变更导致,请查阅官方手册


启动/关闭服务

Windows 系统下

在 Windows 系统下,打开命令窗口(cmd),进入 MySQL 安装目录的 bin 目录。

假设您的mysql安装在C:\mysql下

启动MySQL服务器

cd c:\mysql\bin
mysqld --console

关闭MySQL服务器

cd c:/mysql/bin
mysqladmin -uroot shutdown

Linux 系统下

首先,我们需要通过以下命令来检查MySQL服务器是否启动:

ps -ef | grep mysqld

如果MySql已经启动,以上命令将输出mysql进程列表, 如果mysql未启动,你可以使用以下命令来启动mysql服务器:

root@host# cd /usr/bin/mysqld_safe &

如果你想关闭目前运行的 MySQL 服务器, 你可以执行以下命令:

root@host# cd /usr/bin
./mysqladmin -u root -p shutdown
Enter password: ******

 


MySQL 用户设置

用户设置包括创建用户、授权管理、撤权管理、删除用户。

创建用户并授权

以下为添加用户的的实例,用户名为finley,密码为yuanbian2012,并授权用户可进行 SELECT, INSERT 和 UPDATE操作权限:

root@host# mysql -u root -p
Enter password:*******
mysql> use mysql;
Database changed
# 添加名为 finley 的 用户
mysql> CREATE USER 'finley'@'localhost' IDENTIFIED BY 'yuanbian2012';

# 对finley用户授权可以对yuanbian.articles表进行增改查操作
mysql> GRANT SELECT, INSERT, UPDATE ON yuanbian.articles TO 'finley'@'localhost'

# 对finley用户授权可以对所有数据库进行任何操作 
mysql> GRANT ALL ON *.* TO 'finley'@'localhost'

Grant用户权限列表如下:

Select、Insert、Update、Delete、Create_priv、Drop

Reload、Shutdown、Process、File、Grant

References、Index、Alter

查看用户权限

mysql> SHOW GRANTS FOR 'root'@'localhost';
+-----------------------------------------------------+
| Grants for admin@localhost                          |
+-----------------------------------------------------+
| GRANT RELOAD, PROCESS ON *.* TO 'root'@'localhost' |
+-----------------------------------------------------+

mysql> show create user root@localhost;
| CREATE USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' AS '.............' REQUIRE NONE PASSWORD EXPIRE DEFAULT ACCOUNT UNLOCK |

撤销账户权限

撤销全局级权限

REVOKE ALL
  ON *.*
  FROM 'finley'@'%.example.com';

撤销数据库级权限

REVOKE CREATE,DROP
  ON expenses.*
  FROM 'custom'@'host47.example.com';

撤销数据表级权限

REVOKE INSERT,UPDATE,DELETE
  ON customer.addresses
  FROM 'custom'@'%.example.com';

删除账户

DROP USER 'finley'@'localhost';
DROP USER 'finley'@'%.example.com';
DROP USER 'admin'@'localhost';
DROP USER 'dummy'@'localhost';

 


运行配置

服务器运行时可以通过命令行选项,但是大多时候是通过配置文件加载选项

一般情况下,你不需要修改该配置文件,该文件默认配置如下:

[mysqld]
# 数据目录
datadir=/var/lib/mysql
# socket 文件路径
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数据库,使用该命令后所有MySQL命令都只针对该数据库。

mysql> use yuanbian;
Database changed

SHOW DATABASES

列出 MySQL 数据库管理系统的数据库列表。

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| yuanbian_book      |
| sys                |
+--------------------+

SHOW TABLES

显示指定数据库的所有表,使用该命令前需要使用 use 命令来选择要操作的数据库。

mysql> use yuanbian;
Database changed
mysql> SHOW TABLES;
+-------------------+
| Tables_in_test_db |
+-------------------+
| article_view_log  |
| article_view_log2 |
| articles          |
+-------------------+
3 rows in set (0.00 sec)

SHOW COLUMNS FROM 数据表

显示数据表的属性,属性类型,主键信息 ,是否为 NULL,默认值等其他信息。

mysql> SHOW COLUMNS FROM articles;
+----------+-------------+------+-----+---------+----------------+
| Field    | Type        | Null | Key | Default | Extra          |
+----------+-------------+------+-----+---------+----------------+
| id       | int         | NO   | PRI | NULL    | auto_increment |
| title    | varchar(45) | YES  |     | NULL    |                |
| author   | varchar(45) | YES  |     | NULL    |                |
| a_type   | smallint    | YES  |     | NULL    |                |
| pub_date | datetime    | YES  |     | NULL    |                |
+----------+-------------+------+-----+---------+----------------+

SHOW INDEX FROM 数据表

显示数据表的详细索引信息,包括PRIMARY KEY(主键)。

mysql> SHOW INDEX FROM yuanbian.articles \G;

*************************** 1. row ***************************
        Table: articles
   Non_unique: 0
     Key_name: PRIMARY
 Seq_in_index: 1
  Column_name: id
    Collation: A
  Cardinality: 9
     Sub_part: NULL
       Packed: NULL
         Null:
   Index_type: BTREE
      Comment:
Index_comment:
      Visible: YES
   Expression: NULL

SHOW TABLE STATUS

该命令将输出Mysql数据库管理系统的性能及统计信息。

mysql> SHOW TABLE STATUS  FROM yuanbian;   # 显示数据库 yuanbian 中所有表的信息

mysql> SHOW TABLE STATUS from yuanbian LIKE 'yuanbian%';     # 表名以yuanbian开头的表的信息
mysql> SHOW TABLE STATUS from yuanbian LIKE 'yuanbian%'\G;   # 加上 \G,查询结果按列打印

Python学习手册-