>>与软件开发有关的知识:操作系统,数据库,网络通信等 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 20487 个阅读者 刷新本主题
 * 贴子主题:  MySQL 管理 回复文章 点赞(0)  收藏  
作者:sunshine    发表时间:2019-08-12 22:54:19     消息  查看  搜索  好友  邮件  复制  引用

  

MySQL  管理

启动及关闭 MySQL 服务器

Windows 系统下

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

    启动:

cd c:/mysql/bin

mysqld --console

    关闭:

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 用户设置

     如果你需要添加 MySQL 用户,你只需要在 mysql 数据库中的 user 表添加新用户即可。

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

                         root@host# 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)

     在添加用户时,请注意使用MySQL提供的 PASSWORD() 函数来对密码进行加密。
     你可以在以上范例看到用户密码加密后为: 6f8c114b58f2ce9e.

                

注意:
在 MySQL5.7 中 user 表的 password 已换成了 authentication_string

        

注意:
password() 加密函数已经在 8.0.11 中移除了,可以使用 MD5() 函数代替。

        

注意:
在注意需要执行 FLUSH PRIVILEGES 语句。

       这个命令执行后会重新载入授权表。

       如果你不使用该命令,你就无法使用新创建的用户来连接mysql服务器,除非你重启mysql服务器。

       你可以在创建用户时,为用户指定权限,在对应的权限列中,在插入语句中设置为 'Y' 即可,用户权限列表如下:    
  • 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
      另外一种添加用户的方法为通过SQL的 GRANT  命令,以下命令会给指定数据库TUTORIALS添加用户 zara ,密码为 zara123 。

root@host# mysql -u root -p

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 文件配置

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

                 [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数据库过程中常用的命令:    
  •    USE 数据库名 :
    选择要操作的Mysql数据库,使用该命令后所有Mysql命令都只针对该数据库。

                     mysql> use JAVATHINKER;

    Database changed        
  •    SHOW DATABASES:
    列出 MySQL 数据库管理系统的数据库列表。

    mysql> SHOW DATABASES;

    +--------------------+

    | Database           |

    +--------------------+

    | information_schema |

    | JAVATHINKER             |

    | cdcol              |

    | mysql              |

    | onethink           |

    | performance_schema |

    | phpmyadmin         |

    | test               |

    | wecenter           |

    | wordpress          |

    +--------------------+

    10 rows in set (0.02 sec)        
  •    SHOW TABLES:
    显示指定数据库的所有表,使用该命令前需要使用 use 命令来选择要操作的数据库。

    mysql> use JAVATHINKER;

    Database changed

    mysql> SHOW TABLES;

    +------------------+

    | Tables_in_javathinker |

    +------------------+

    | employee_tbl     |

    | javathinker_tbl       |

    | tcount_tbl       |

    +------------------+

    3 rows in set (0.00 sec)        
  •    SHOW COLUMNS FROM 数据表:
    显示数据表的属性,属性类型,主键信息 ,是否为 NULL,默认值等其他信息。

    mysql> SHOW COLUMNS FROM javathinker_tbl;

    +-----------------+--------------+------+-----+---------+-------+

    | Field           | Type         | Null | Key | Default | Extra |

    +-----------------+--------------+------+-----+---------+-------+

    | javathinker_id       | int(11)      | NO   | PRI | NULL    |       |

    | javathinker_title    | varchar(255) | YES  |     | NULL    |       |

    | javathinker_author   | varchar(255) | YES  |     | NULL    |       |

    | submission_date | date         | YES  |     | NULL    |       |

    +-----------------+--------------+------+-----+---------+-------+

    4 rows in set (0.01 sec)        
  •    SHOW INDEX FROM 数据表:
    显示数据表的详细索引信息,包括PRIMARY KEY(主键)。

                     mysql> SHOW INDEX FROM javathinker_tbl;

    +------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+

    | Table      | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |

    +------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+

    | javathinker_tbl |          0 | PRIMARY  |            1 | javathinker_id   | A         |           2 |     NULL | NULL   |      | BTREE      |         |               |

    +------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+

    1 row in set (0.00 sec)        
  •    SHOW TABLE STATUS LIKE  [FROM db_name] [LIKE 'pattern'] \G:
    该命令将输出Mysql数据库管理系统的性能及统计信息。

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

    mysql> SHOW TABLE STATUS from JAVATHINKER LIKE 'javathinker%';     # 表名以javathinker开头的表的信息

    mysql> SHOW TABLE STATUS from JAVATHINKER LIKE 'javathinker%'\G;   # 加上 \G,查询结果按列打印        
     Gif 图演示:

         点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小



程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-02-26 10:58:33 重新编辑]
  Java面向对象编程-->面向对象开发方法概述之UML语言(下)
  JavaWeb开发-->JSP技术详解(Ⅰ)
  JSP与Hibernate开发-->数据库事务的概念和声明
  Java网络编程-->Socket用法详解
  精通Spring-->Vue组件开发基础
  Vue3开发-->创建综合购物网站应用
  关于Mongodb的全面总结
  零开始到用户超千万,系统压力暴增的情况下是如何一步步优化...
  MySQL索引原理 - 秋慕云
  MySQL 复制表
  MySQL ALTER命令
  SQL CREATE VIEW、REPLACE VIEW、 DROP VIEW 语句
  SQL AUTO INCREMENT 字段
  SQL FOREIGN KEY 约束
  网络运维 - 你与真相就差一层窗户纸
  Service Mesh 落地负责人亲述:蚂蚁金服双十一四大考题
  海量日志分析与智能运维
  CentOS7.5使用mysql_multi方式安装MySQL5.7.28多实例
  关系型数据库全表扫描分片详解
  深入认识二进制序列化--记一次生产事故的思考
  mysql主从复制的步骤
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。