MySQL基础教程
01、MySQLMariaDB 基础教程
02、MySQL 简介
03、MySQL MariaDB 安装
04、MySQL 管理
05、MySQL 日常管理
06、MySQL PHP 语法
07、MySQL 创建连接
08、MySQL 获取数据库列表
09、MySQL 创建数据库
10、MySQL 删除数据库
11、MySQL 选择数据库
12、MySQL 数据类型
13、MySQL 列出数据表
14、MySQL 创建数据表
15、MySQL 删除表
16、MySQL 插入数据
17、MySQL 获取插入数据的 ID
18、MySQL SELECT FROM 查询数据
19、MySQL WHERE 子句有条件的查询数据
20、MySQL UPDATE 更新数据
21、MySQL DELETE FROM 语句删除数据
22、MySQL 返回删改查受影响的行数
23、MySQL LIKE 子句模糊查询数据
24、MySQL UNION 操作符查询多张表
25、MySQL ORDER BY 排序
26、MySQL GROUP BY 分组查询数据
27、MySQL JOIN 进行多表查询
28、MySQL NULL 值处理
29、MySQL REGEXP 子句正则表达式查询
30、MySQL 数据库事务
31、MySQL ALTER 命令
32、MySQL 索引
33、CREATE TEMPORARY TABLE 创建临时表
34、MySQL DROP TABLE 删除临时表
35、MySQL INSERT INTO SELECT 复制表
36、MySQL 获取服务器元数据
37、MySQL 自增序列 AUTO_INCREMENT
38、MySQL 处理重复数据
39、MySQL 安全及防止 SQL 注入攻击
40、MySQL 导出数据
41、MySQL 导入数据
本文档使用 MrDoc 发布
-
+
首页
04、MySQL 管理
通过以下命令来检查 MySQL 服务器是否启动 ```python ps -ef | grep mysql ``` 例如在我的苹果电脑上运行如下 ```python [root@ddkk.com ~]# ps -ef | grep mysql mysql 1520 1 0 18:21 ? 00:00:00 /bin/sh /usr/bin/mysqld_safe --basedir=/usr mysql 1682 1520 0 18:21 ? 00:00:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock root 1774 1744 0 18:29 pts/0 00:00:00 grep --color=auto mysql ``` 如果MySql 已经启动,上面的命令会输出 mysql 进程列表 `mysqld_safe` 和 `mysqld` ### **启动 MySQL 命令** ------------ 如果MySQL 未启动,使用以下命令来启动 MySQL 服务器 ```python [root@ddkk.com ~]# mysqld_safe & ``` ### **关闭 MySQL 命令** ------------ 如果想关闭目前运行的 MySQL 服务器, 可以执行以下命令 ```python [root@ddkk.com ~]# mysqladmin -u root -p shutdown Enter password: ****** ``` ### **MySQL 添加用户** ------------ MySQL 服务器默认已经添加了 **root** 用户 如果需要添加 MySQL 用户,我们只需要在数据库 `mysql` 中的表 `user` 中插入新用户即可 下面的SQL 语句可以添加一个新的用户 用户名为 `demo` 密码为 `demo123` 并授权用户可进行` SELECT,INSERT,UPDATE` 操作权限 `INSERT INTO mysql.user (host, user, password, select_priv, insert_priv, update_priv) VALUES ('localhost', 'demo', PASSWORD('demo123'), 'Y', 'Y', 'Y'); ` 然后刷新权限 `FLUSH PRIVILEGES;` 你可以按照下面的步骤尝试一下 ```python [root@ddkk.com ~]# mysql -uroot -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 6 Server version: 5.5.56-MariaDB MariaDB Server Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> USE mysql; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed MariaDB [mysql]> INSERT INTO user (host, user, password, select_priv, insert_priv, update_priv) VALUES ('localhost', 'demo', PASSWORD('demo123'), 'Y', 'Y', 'Y'); Query OK, 1 row affected, 4 warnings (0.01 sec) MariaDB [mysql]> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec) MariaDB [mysql]> SELECT host, user, password FROM user WHERE user = 'demo'; +-----------+------+-------------------------------------------+ | host | user | password | +-----------+------+-------------------------------------------+ | localhost | demo | *3055544BD641D0814B910C4ACA5799F51B80F460 | +-----------+------+-------------------------------------------+ 1 row in set (0.01 sec) ``` 在添加用户时,请注意使用 MySQL 提供的 `PASSWORD()` 函数来对密码进行加密 我们在上面的范例中看到用户密码加密后为: ```python 3055544BD641D0814B910C4ACA5799F51B80F460 ``` **注意** 1、 在MySQL5.7中user表的password已换成了authentication_string; 2、 添加用户后需要执行FLUSHPRIVILEGES语句,这个命令执行后会重新载入授权表如果使用该命令,无法使用新创建的用户来连接MySQL服务器,除非重启MySQL服务器; **用户权限** 可以在创建用户时,为用户指定权限,在对应的权限列中,在插入语句中设置为 ‘Y’ 即可 用户权限说明 | 命令标识 | 授权表中对应的列 | 说明 | | --- | --- | --- | |CREATE |Create_priv| 创建数据库、表或索引 | |CREATE TEMPORARY TABLES| Create_tmp_table_priv| 创建临时数据表| |CREATE ROUTINE| Create_routine_priv| 创建函数或存储| |CREATE VIEW| Create_view_priv |创建视图| |CREATE USER |Create_user_priv| 创建用户| |EXECUTE| Execute_priv| 执行函数或存储过程| |INDEX| Index_priv |建立索引| |REFERENCES| References_priv |建立约束|| |DROP| Drop_priv |删除表| |SELECT| Select_priv |查询数据| |INSERT| Insert_priv |插入数据| |UPDATE| Update_priv |更新数据| |DELETE| Delete_priv |删除数据| |LOCK TABLES| Lock_tables_priv |锁定表格| |SHOW DATABASES| Show_db_priv |列出数据库| |SHOW VIEW| Show_view_priv |列出视图| |USAGE| |只有登录权限, 其它权限都没有| |ALL| |所有权限,除了 WITH GRANT OPTION| |ALTER| Alter_priv |更改数据表| |ALTER ROUTINE| Alter_routine_priv |更改函数或存储过程| |PROCESS| Process_priv |显示连接进程和中断连接进程|| |FILE| File_priv |载入文件| |RELOAD| Reload_priv |可以用 FLUSH| |REPLICATION CLIENT| Repl_client_priv |可以检查 Masters 和 Slaves| |REPLICATION SLAVE| Repl_slave_priv |在 Slave 里的特殊权限| |SHUTDOWN| Shutdown_priv |关闭 MySQL| |WITH GRANT OPTION| Grant_priv |可以将自己拥有的权限赋给其它用户| |SUPER| Super_priv |执行 kill 线程,change master、purge master logs、set global等命令的权限| |create tablespace| Create_tablespace_priv |创建表空间| |Event| Event_priv |确定用户能否创建、修改和删除事件| |Trigger| Trigger_priv| 确定用户能否创建和删除触发器| ### **GRANT 命令添加用户** ------------ 下面的SQL 语句会给指定数据库 test 添加用户 souyunku1 ,密码为 souyunku123xyz `GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON test.* TO 'souyunku1'@'localhost' IDENTIFIED BY 'souyunku123xyz'; ` 操作演示 ```python [root@ddkk.com ~]# mysql -uroot -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 8 Server version: 5.5.56-MariaDB MariaDB Server Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> USE mysql; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed MariaDB [mysql]> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON test.* TO 'souyunku1'@'localhost' IDENTIFIED BY 'souyunku123xyz'; Query OK, 0 rows affected (0.00 sec) MariaDB [mysql]> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec) MariaDB [mysql]> SELECT host, user, password FROM user; +-----------------------+-------+-------------------------------------------+ | host | user | password | +-----------------------+-------+-------------------------------------------+ | localhost | root | | | localhost.localdomain | root | | | 127.0.0.1 | root | | | ::1 | root | | | localhost | | | | localhost.localdomain | | | | localhost | demo | *3055544BD641D0814B910C4ACA5799F51B80F460 | | localhost | souyunku1 | *302D386BA9E00875ADDF9ED0AD447B19FAE2FEDB | +-----------------------+-------+-------------------------------------------+ 8 rows in set (0.00 sec) MariaDB [mysql]> ``` ### **/etc/my.cnf 配置文件** ------------ 一般情况下,我们不需要修改该配置文件,该文件默认配置如下: ```python [root@ddkk.com ~]# cat /etc/my.cnf ``` 显示内容如下 ```python [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # Settings user and group are ignored when systemd is used. # If you need to run mysqld under a different user or group, # customize your systemd unit file for mariadb according to the # instructions in http://fedoraproject.org/wiki/Systemd [mysqld_safe] log-error=/var/log/mariadb/mariadb.log pid-file=/var/run/mariadb/mariadb.pid # include all files from the config directory !includedir /etc/my.cnf.d ``` 在配置文件中,我们可以指定不同的错误日志文件存放的目录,但一般不需要改动这些配置
李智
2025年3月17日 13:30
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码