1. 首页
  2. mysql教程

04-四、MySQL 管理

通过以下命令来检查 MySQL 服务器是否启动


ps -ef | grep mysql

例如在我的苹果电脑上运行如下


[root@localhost ~]# 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_safemysqld

启动 MySQL 命令

如果 MySQL 未启动,使用以下命令来启动 MySQL 服务器


[root@localhost ~]# mysqld_safe &

关闭 MySQL 命令

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


[root@localhost ~]# 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;

你可以按照下面的步骤尝试一下


[root@localhost ~]# 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 | +-----------+------+-------------------------------------------+ row in set (0.01 sec)

在添加用户时,请注意使用 MySQL 提供的 PASSWORD() 函数来对密码进行加密

我们在上面的范例中看到用户密码加密后为:


3055544BD641D0814B910C4ACA5799F51B80F460

注意

1、 在 MySQL 5.7user 表的 password 已换成了 authentication_string
2、 添加用户后需要执行 FLUSH PRIVILEGES 语句,这个命令执行后会重新载入授权表 如果使用该命令,无法使用新创建的用户来连接 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 添加用户 ycbbs1 ,密码为 ycbbs123xyz


GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON test.* TO 'ycbbs1'@'localhost' IDENTIFIED BY 'ycbbs123xyz';

操作演示


[root@localhost ~]# 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 'ycbbs1'@'localhost' IDENTIFIED BY 'ycbbs123xyz'; 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 | ycbbs1 | *302D386BA9E00875ADDF9ED0AD447B19FAE2FEDB | +-----------------------+-------+-------------------------------------------+ rows in set (0.00 sec) MariaDB [mysql]>

/etc/my.cnf 配置文件

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


[root@localhost ~]# cat /etc/my.cnf

显示内容如下


[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

在配置文件中,我们可以指定不同的错误日志文件存放的目录,但一般不需要改动这些配置

希望读者能够给小编留言,也可以点击[此处扫下面二维码关注微信公众号](https://www.ycbbs.vip/?p=28 "此处扫下面二维码关注微信公众号")

看完两件小事

如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:

  1. 关注我们的 GitHub 博客,让我们成为长期关系
  2. 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
  3. 关注公众号 「方志朋」,公众号后台回复「666」 免费领取我精心整理的进阶资源教程
  4. JS中文网,Javascriptc中文网是中国领先的新一代开发者社区和专业的技术媒体,一个帮助开发者成长的社区,是给开发者用的 Hacker News,技术文章由为你筛选出最优质的干货,其中包括:Android、iOS、前端、后端等方面的内容。目前已经覆盖和服务了超过 300 万开发者,你每天都可以在这里找到技术世界的头条内容。

    本文著作权归作者所有,如若转载,请注明出处

    转载请注明:文章转载自「 Java极客技术学习 」https://www.javajike.com

    标题:04-四、MySQL 管理

    链接:https://www.javajike.com/article/1567.html

« 05-五、MySQL 日常管理
03-三、MySQL MariaDB 安装»

相关推荐

QR code