zoukankan      html  css  js  c++  java
  • mysql的安装和密码管理、mysql初始密码查找、密码修改、mysql登录

    官网下载安装mysql-server

    CentOS 7 版本已将MySQL数据库软件从默认的程序列表中移除,改用mariadb代替。先要从官网下载MySQL Yum repository安装包,之后用yum安装:
    官网的MySQL Yum repository最新地址:https://dev.mysql.com/downloads/repo/yum/
    用wget下载MySQL Yum repository安装包,安装完成后,用yum安装MySQL如下:

    wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
    rpm -ivh mysql80-community-release-el7-1.noarch.rpm
    yum install mysql-community-server

    在最小化安装的情况下,如果需要yum离线安装,所需依赖如下:

    =================================================================================================================================================================================================================================================
     Package                                                              Arch                                            Version                                                   Repository                                                  Size
    =================================================================================================================================================================================================================================================
    Installing:
     mysql-community-libs                                                 x86_64                                          8.0.13-1.el7                                              mysql80-community                                          2.3 M
         replacing  mariadb-libs.x86_64 1:5.5.56-2.el7
     mysql-community-libs-compat                                          x86_64                                          8.0.13-1.el7                                              mysql80-community                                          2.1 M
         replacing  mariadb-libs.x86_64 1:5.5.56-2.el7
     mysql-community-server                                               x86_64                                          8.0.13-1.el7                                              mysql80-community                                          381 M
    Installing for dependencies:
     mysql-community-client                                               x86_64                                          8.0.13-1.el7                                              mysql80-community                                           26 M
     mysql-community-common                                               x86_64                                          8.0.13-1.el7                                              mysql80-community                                          554 k
     perl                                                                 x86_64                                          4:5.16.3-293.el7                                          base                                                       8.0 M
     perl-Carp                                                            noarch                                          1.26-244.el7                                              base                                                        19 k
     perl-Encode                                                          x86_64                                          2.51-7.el7                                                base                                                       1.5 M
     perl-Exporter                                                        noarch                                          5.68-3.el7                                                base                                                        28 k
     perl-File-Path                                                       noarch                                          2.09-2.el7                                                base                                                        26 k
     perl-File-Temp                                                       noarch                                          0.23.01-3.el7                                             base                                                        56 k
     perl-Filter                                                          x86_64                                          1.49-3.el7                                                base                                                        76 k
     perl-Getopt-Long                                                     noarch                                          2.40-3.el7                                                base                                                        56 k
     perl-HTTP-Tiny                                                       noarch                                          0.033-3.el7                                               base                                                        38 k
     perl-PathTools                                                       x86_64                                          3.40-5.el7                                                base                                                        82 k
     perl-Pod-Escapes                                                     noarch                                          1:1.04-293.el7                                            base                                                        51 k
     perl-Pod-Perldoc                                                     noarch                                          3.20-4.el7                                                base                                                        87 k
     perl-Pod-Simple                                                      noarch                                          1:3.28-4.el7                                              base                                                       216 k
     perl-Pod-Usage                                                       noarch                                          1.63-3.el7                                                base                                                        27 k
     perl-Scalar-List-Utils                                               x86_64                                          1.27-248.el7                                              base                                                        36 k
     perl-Socket                                                          x86_64                                          2.010-4.el7                                               base                                                        49 k
     perl-Storable                                                        x86_64                                          2.45-3.el7                                                base                                                        77 k
     perl-Text-ParseWords                                                 noarch                                          3.29-4.el7                                                base                                                        14 k
     perl-Time-HiRes                                                      x86_64                                          4:1.9725-3.el7                                            base                                                        45 k
     perl-Time-Local                                                      noarch                                          1.2300-2.el7                                              base                                                        24 k
     perl-constant                                                        noarch                                          1.27-2.el7                                                base                                                        19 k
     perl-libs                                                            x86_64                                          4:5.16.3-293.el7                                          base                                                       688 k
     perl-macros                                                          x86_64                                          4:5.16.3-293.el7                                          base                                                        44 k
     perl-parent                                                          noarch                                          1:0.225-244.el7                                           base                                                        12 k
     perl-podlators                                                       noarch                                          2.5.1-3.el7                                               base                                                       112 k
     perl-threads                                                         x86_64                                          1.87-4.el7                                                base                                                        49 k
     perl-threads-shared                                                  x86_64                                          1.43-6.el7                                                base                                                        39 k
    Updating for dependencies:
     postfix                                                              x86_64                                          2:2.10.1-7.el7                                            base                                                       2.4 M
    
    Transaction Summary
    =================================================================================================================================================================================================================================================
    Install  3 Packages (+29 Dependent packages)
    Upgrade             (  1 Dependent package)
    
    Total download size: 426 M

     

    启动MySQL服务
    systemctl start mysqld.service
    运行一下命令查看一下运行状态
    systemctl status mysqld.service

    设置开机启动:

    systemctl enable mysqld
    systemctl daemon-reload

    mysql的密码管理

    1、查询mysql的初始密码:

    初始密码密码是随机产生的,每台机器产生的都不一样的:

    grep 'temporary password' /var/log/mysqld.log 

    或者

    cat /var/log/mysqld.log | grep 'temporary password'

    [root@localhost ~]#grep 'temporary password' /var/log/mysqld.log 
    2019-01-08T07:44:08.711112Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: d2t511xRrg;>

    将以上密码复制在登录时用到;

    2、登录mysql的命令

    mysql -uroot -p[回车],然后将复制的临时密码粘贴,回车。

    如果手打输入密码,此处是不可见,并且不能删除,输入错误了请回车后重新输入,即使退格键也会被当做是字符密码来验证。

     3、修改mysql密码
    第一次登录需要重置密码,否则其他操作都会报以下错误:
    ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

    重置密码的命令如下(在skip-grant-tables 中不可用;唯一在8.0中生效的改密码方法,后面几个方法测试都是报错,可能在mysql5.7没问题;):
    ALTER USER 'root'@'localhost' IDENTIFIED BY '****************';

    mysql默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。
    否则会提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements错误。

    mysql> show variables like 'vali%';
    +--------------------------------------+--------+
    | Variable_name                        | Value  |
    +--------------------------------------+--------+
    | validate_password.check_user_name    | ON     |
    | validate_password.dictionary_file    |        |
    | validate_password.length             | 8      |
    | validate_password.mixed_case_count   | 1      |
    | validate_password.number_count       | 1      |
    | validate_password.policy             | MEDIUM |
    | validate_password.special_char_count | 1      |
    +--------------------------------------+--------+
    7 rows in set (0.03 sec)

     validate_password_length 8 # 密码的最小长度,此处为8。
     validate_password_mixed_case_count 1 # 至少要包含小写或大写字母的个数,此处为1。
     validate_password_number_count 1 # 至少要包含的数字的个数,此处为1。
     validate_password_policy MEDIUM # 强度等级,其中其值可设置为0、1、2。分别对应:
                               【0/LOW】:只检查长度。
                               【1/MEDIUM】:在0等级的基础上多检查数字、大小写、特殊字符。
                               【2/STRONG】:在1等级的基础上多检查特殊字符字典文件,此处为1。
     validate_password_special_char_count 1 # 至少要包含的个数字符的个数,此处为1。

    4、数据库授权

    数据库没有授权前,只支持localhost本地访问,授权如下:
    mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '******' WITH GRANT OPTION;
    //远程连接数据库的时候需要输入用户名和密码
    用户名:root
    密码:******
    指定ip地址:%代表所有ip,此处也可以按实际需求输入确定的ip地址来指定ip
    输入后使修改生效还需要下面的语句:
    mysql>FLUSH PRIVILEGES;

    flush privileges 命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。MySQL用户数据和权限有修改后,希望在"不重启MySQL服务"的情况下直接生效,那么就需要执行这个命令。通常是在修改ROOT帐号的设置后,怕重启后无法再登录进来,那么直接flush之后就可以看权限设置是否生效。而不必冒太大风险。

    也可以通过修改表来实现远程:
    mysql> use mysql;
    mysql> update user set host = '%' where user = 'root';
    mysql> select host, user from user;

    也可以用直接再添加新用户的方法解决:
    CREATE USER ‘root‘@‘%‘ IDENTIFIED BY ‘******‘;
    grant all on *.* to 'root001'@'%' identified by 'Root@@'  with grant option;

    增加root用户指定可以任意IP登录,如果想限制只能让指定IP登录请把%替换成IP地址。

    5、忘记mysql的登录密码了
    首先找到mysql的配置文件my.cnf 一般在  /etc/my.cnf :

    vim /etc/my.cnf 

    在最后一行添加上:skip-grant-tables

    保存退出,重启mysqld 使之生效,用mysql -uroot直接进入数据库

    mysql>use mysql;

    mysql> UPDATE mysql.user SET Password = password ( 'xinmima' ) WHERE User = 'root' ;//单引号内的字符即使需要设置的新密码

    mysql> update mysql.user set authentication_string=password('新密码') where user='root';

    mysql> flush privileges ;

    mysql>quit

    改完密码后,将配置文件改回来,删除 /etc/my.cnf 文件里面的“skip-grant-tables”。

    重启数据库服务mysqld,然后就可以使用 mysql -uroot -p输入你的新密码进入了。

    在第一次重启后,mysql数据库处于完全没有密码保护的状态,其他任何用户都不需要密码直接可以登录mysql数据库。需要保证没有其他用户在登录或者连接。

    本次使用的是CentOS7.5版本和mysql8.0.13的版本。正确语法如下:
    update user set authentication_string='' where user='root';

    mysql> flush privileges ;

    mysql>quit

    MySQL修改初始密码三种方法:

    方法一:

    1、使用空的初始密码登录mysql账号:
    mysql-uroot -p

    2、修改root密码:
    SETPASSWORD = PASSWORD('123456');

    方法二:

    1、使用空的初始密码登录mysql账号:
    mysql-uroot -p

    2、修改root密码:
    mysqladmin -u root password '123456'

    方法三:

    1、使用空的初始密码登录mysql账号:
    mysql-uroot -p

    2、修改root密码:
    mysql> update user set Password=password("123456") where User='root';
    Query OK, 4 rows affected (0.01 sec)
    Rows matched: 4 Changed: 4 Warnings: 0

    mysql> flush privileges;
    Query OK, 0 rows affected (0.04 sec)

    mysql> select Host,User,password from user where user='root';
    +-----------------------+------+-------------------------------------------+
    | Host | User | password |
    +-----------------------+------+-------------------------------------------+
    | localhost | root | *5626ED34B75C6C508BA2A3D0A4F6E4C58823138C |
    | localhost.localdomain | root | *5626ED34B75C6C508BA2A3D0A4F6E4C58823138C |
    | 127.0.0.1 | root | *5626ED34B75C6C508BA2A3D0A4F6E4C58823138C |
    | ::1 | root | *5626ED34B75C6C508BA2A3D0A4F6E4C58823138C |
    +-----------------------+------+-------------------------------------------+
    4 rows in set (0.00 sec)

    mysql 5.7的数据库没有了password字段,用的是authentication_string字段:
    mysql> update mysql.user set authentication_string=password('root') where user='root' ;
    mysql> flush privileges;
    mysql 8.0.13的数据库用的也是authentication_string字段:
    mysql> update mysql.user set authentication_string='******' where user='root' ;
    mysql> flush privileges;

    参考:
    https://www.cnblogs.com/jimmyTang-J/p/9698211.html
    https://blog.csdn.net/xuheng8600/article/details/80034647
    https://blog.csdn.net/z13615480737/article/details/78907697

  • 相关阅读:
    [转载]Netmsg 局域网聊天程序
    [转载] VC6 STLport5.1.4 /STLport4.6.2 编译,安装
    Project Euler Problem 17
    [转载]Singleton的一个基类实现
    [翻译]进化游戏的层次结构 用组件来重构你的游戏实体
    [转载]使用 WSAAsyncSelect 的 Winsock 编程模型
    一种简单定义FourCC常量的方法 (C/C++)
    Permissions 0755 for '/data/user/lxb/.ssh/id_rsa' are too open.
    外键约束之Mysql
    parted
  • 原文地址:https://www.cnblogs.com/ylnic/p/10196908.html
Copyright © 2011-2022 走看看