如果发现本手册内容不正确,可能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,查询结果按列打印
讨论区