zoukankan      html  css  js  c++  java
  • mysql启动流程

    MySQL如果删除了所有用户怎么办?

    前提:

    1、     判断数据库有没有关闭

    2、     判断数据库又没有主从

    操作流程:

    1、     先关闭数据库

    2、     以不验证的方式登陆(无需密码)

    3、     进入数据库中在mysql库中授权一个用户

    4、     或者向mysql中的user表中插入数据

    操作如下:

    [root@localhost ~]# mysql  -uroot  -p123

    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

    #这里指定了密码和用户也登陆不了

    [root@localhost ~]# service   mariadb   stop

    #停止数据库

    [root@localhost ~]# mysqld_safe --skip-grant-tables  --skip-networking  &

    #进行免密登陆

    MariaDB [(none)]> use  mysql

    Database changed

    MariaDB [mysql]> GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY 'password' WITH GRANT OPTION;

    Query OK, 0 rows affected (0.00 sec)

    MariaDB [mysql]> select   user, host  from   user;

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

    | user | host      |

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

    | root | localhost |

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

    1 row in set (0.00 sec)

    第二种方法

    如果使用这种方法需要了解user表中有哪些列

    MariaDB [mysql]> desc  user;

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

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

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

    | Host                   | char(60)                          | NO   | PRI |         |       |

    | User                   | char(16)                          | NO   | PRI |         |       |

    | Password               | char(41)                          | NO   |     |         |       |

    | Select_priv            | enum('N','Y')                     | NO   |     | N       |       |

    | Insert_priv            | enum('N','Y')                     | NO   |     | N       |       |

    | Update_priv            | enum('N','Y')                     | NO   |     | N       |       |

    | Delete_priv            | enum('N','Y')                     | NO   |     | N       |       |

    | Create_priv            | enum('N','Y')                     | NO   |     | N       |       |

    | Drop_priv              | enum('N','Y')                     | NO   |     | N       |       |

    | Reload_priv            | enum('N','Y')                     | NO   |     | N       |       |

    | Shutdown_priv          | enum('N','Y')                     | NO   |     | N       |       |

    | Process_priv           | enum('N','Y')                     | NO   |     | N       |       |

    | File_priv              | enum('N','Y')                     | NO   |     | N       |       |

    | Grant_priv             | enum('N','Y')                     | NO   |     | N       |       |

    | References_priv        | enum('N','Y')                     | NO   |     | N       |       |

    | Index_priv             | enum('N','Y')                     | NO   |     | N       |       |

    | Alter_priv             | enum('N','Y')                     | NO   |     | N       |       |

    | Show_db_priv           | enum('N','Y')                     | NO   |     | N       |       |

    | Super_priv             | enum('N','Y')                     | NO   |     | N       |       |

    | Create_tmp_table_priv  | enum('N','Y')                     | NO   |     | N       |       |

    | Lock_tables_priv       | enum('N','Y')                     | NO   |     | N       |       |

    | Execute_priv           | enum('N','Y')                     | NO   |     | N       |       |

    | Repl_slave_priv        | enum('N','Y')                     | NO   |     | N       |       |

    | Repl_client_priv       | enum('N','Y')                     | NO   |     | N       |       |

    | Create_view_priv       | enum('N','Y')                     | NO   |     | N       |       |

    | Show_view_priv         | enum('N','Y')                     | NO   |     | N       |       |

    | Create_routine_priv    | enum('N','Y')                     | NO   |     | N       |       |

    | Alter_routine_priv     | enum('N','Y')                     | NO   |     | N       |       |

    | Create_user_priv       | enum('N','Y')                     | NO   |     | N       |       |

    | Event_priv             | enum('N','Y')                     | NO   |     | N       |       |

    | Trigger_priv           | enum('N','Y')                     | NO   |     | N       |       |

    | Create_tablespace_priv | enum('N','Y')                     | NO   |     | N       |       |

    | ssl_type               | enum('','ANY','X509','SPECIFIED') | NO   |     |         |       |

    | ssl_cipher             | blob                              | NO   |     | NULL    |       |

    | x509_issuer            | blob                              | NO   |     | NULL    |       |

    | x509_subject           | blob                              | NO   |     | NULL    |       |

    | max_questions          | int(11) unsigned                  | NO   |     | 0       |       |

    | max_updates            | int(11) unsigned                  | NO   |     | 0       |       |

    | max_connections        | int(11) unsigned                  | NO   |     | 0       |       |

    | max_user_connections   | int(11)                           | NO   |     | 0       |       |

    | plugin                 | char(64)                          | NO   |     |         |       |

    | authentication_string  | text                              | NO   |     | NULL    |       |

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

    42 rows in set (0.01 sec)

    #这里是user表中的字段,如果需要插入超级用户需要有所有的权力,即这里的列为Y

    操作语句

    MariaDB [(none)]> insert   into  mysql.user  values('127.0.0.1','root',PASSWORD('123'),'Y','Y', 'Y', 'Y', 'Y', 'Y','Y', 'Y', 'Y', 'Y', 'Y','Y', 'Y', 'Y', 'Y', 'Y','Y', 'Y', 'Y', 'Y', 'Y','Y', 'Y', 'Y', 'Y', 'Y','Y', 'Y', 'Y','','','',0,0,0,0,'mysql_native_password','','N');

    #重启数据库

    MariaDB [mysql]> select user,host from   user;

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

    | user | host      |

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

    | root | 127.0.0.1 |

    | root | localhost |

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

    2 rows in set (0.00 sec)

    mysql的连接

    mysql命令是mysql自带的连接数据库工具,其本质是mysql客户端

    常见参数有:

    -u          指定用户

    -p          指定密码

    -h          指定IP地址用于远程连接

    -S          指定soket文件

    -e          指定使使用的sql语句

    --protocol=name   指定连接方式

    第三方工具

    sqlyon、navtcat

    mysqld_safe与mysqld区别

    mysqld是mysql的守护进程。每次在使用mysql前必须先用它。mysqld是计算机进程,MySQL数据库服务器相关程序。

    mysqld_safe

    1. 检查系统和选项。

    2. 检查MyISAM表。

    3. 保持MySQL服务器窗口。

    4. 启动并监视mysqld,如果因错误终止则重启。

    5. 将mysqld的错误消息发送到数据目录中的host_name.err 文件。

    6. 将mysqld_safe的屏幕输出发送到数据目录中的host_name.safe文件。

    mysqld_safe的常用参数详解

    参数

    说明

    --skip-grant-tables

    跳过安全验证

    --skip-networking

    关闭tcp连接

    --datadir=path

    指定安装目录

    --basedir=path

    指定数据目录

    --defaults-file=path

    指定数据库配置目录

    --pid-file=path

    指定pid文件目录

    --socket=path

    指定socket文件

    --user=username

    指定启动用户

    --port=3306

    指定端口

    --log-error

    指定错误日志目录

    MySQL数据库启动流程

     

  • 相关阅读:
    【找回数学的感觉】1 再版汉诺塔等
    【算法】7 分不清栈和队列?一张图给你完整体会
    好玩的WPF第四弹:用Viewport2DVisual3D实现3D旋转效果
    我们应该怀念爱因斯坦的五个原因
    【万里征程——Windows App开发】如何在多个页面间读取/保存文件【草稿】
    仅仅是来自深夜的想法
    好玩的WPF第三弹:颤抖吧,地球!消失吧,地球!
    Markdown大赛二等奖
    让JavaScript在Visual Studio 2015中编辑得更容易
    好玩的WPF第二弹:电子表字体显示时间+多彩呼吸灯特效按钮
  • 原文地址:https://www.cnblogs.com/DB-MYSQL/p/11616475.html
Copyright © 2011-2022 走看看