zoukankan      html  css  js  c++  java
  • Mysql安装、查看密码、修改密码、初始化、修改字符类型

    安装mysql
    
    参照python篇一键安装lnmp。安装完之后再按照下面修改密码,修改配置文件,否则安装的时候就修改配置文件会出错。
    
    注意:这也是二进制安装mysql。另一种二进制安装容易出错,生产环境不要用rpm包安装,会出问题,测试过安装msyql不要改里面的字符类型,否则安装时候报错。等安装完后再修改
    
     
    
    2、查看初始化的密码:
    
     
    
    初始化mysql时生成的密码
    
    初始化mysql
    2018-11-27T07:28:39.407117Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2018-11-27T07:28:40.069251Z 0 [Warning] InnoDB: New log files created, LSN=45790
    2018-11-27T07:28:40.181277Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
    2018-11-27T07:28:40.194608Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 0fbb7543-f216-11e8-9f31-000c29c231f7.
    2018-11-27T07:28:40.195834Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
    2018-11-27T07:28:40.197256Z 1 [Note] A temporary password is generated for root@localhost: 8YuFFueq4P!o
    
    8YuFFueq4P!o    就是密码
    
     
    
    3、重置为复杂密码
    
     
    
    3.1、配置免密登录 、重启mysql、登录mysql
    
     
    
    在[mysqld]下面添加skip-grant-tables
    
    [root@ecs-03 mysql]#service mysqld stop
    [root@ecs-03 mysql]# vi /etc/my.cnf 
    [mysqld]
    skip-grant-tables   #跳过密码
    
    重启数据库
    
    [root@ecs-03 mysql]# systemctl restart mysqld
    
    一条命令执行以上步骤如下
    
    systemctl stop mysqld && sed -i '/mysqld/a skip-grant-tables' /etc/my.cnf && systemctl restart mysqld
    
    
    登录数据库,下面直接回车 不用输入密码
    
    [root@ecs-03 mysql]# mysql -u root -p
    Enter password:
    
    [root@ecs-02 mysql]# mysql -u root -p
    Enter password: 
    Welcome to the MySQL monitor. Commands end with ; or g.
    Your MySQL connection id is 3
    Server version: 5.7.22 MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    mysql>
    
     
    
    3.2、 修改root数据库账号密码方式一(推荐)
    
    修改当前用户为root
    
    mysql> 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
    mysql> select host, user from user;
    +---------------+---------------+
    | host          | user          |
    +---------------+---------------+
    | %             | root          |
    | 192.168.0.%   | root          |
    | 192.168.0.1.% | root          |
    | localhost     | mysql.session |
    | localhost     | mysql.sys     |
    | localhost     | root          |
    +---------------+---------------+
    6 rows in set (0.00 sec)
    
    mysql> update user set host='%' where user='root';
    ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'  #不用管,没有影响,直接下一步
    mysql> flush privileges;
    Query OK, 0 rows affected (0.02 sec)
    
    重启数数据,否则不生效
    
    systemctl restart mysqld   #等操作完下面一起重启
    
    
    授予root用户给其他用户授权的权限
    
    update mysql.user set Grant_priv='Y' where User='root' and Host='%';
    
    flush privileges;(刷新权限)
    
    修改root密码、开启远程连接授权
    
    mysql> flush privileges;
    Query OK, 0 rows affected (0.02 sec)
    
    mysql> grant all privileges on *.* TO 'root'@'%' identified by 'jenkins@123' with grant option;
    Query OK, 0 rows affected, 1 warning (0.02 sec)
    mysql>grant all on *.* to root@'localhost' identified by 'jenkins@123' with grant option;
    mysql> alter user 'root'@'localhost' identified by 'jenkins@123';
    mysql> flush privileges;
    Mysql>exit
    
    修改后把kip-grant-tables注释掉重启mysql
    
    systemctl stop mysqld &&  sed -i 's/skip-grant-tables/#skip-grant-tables/g' /etc/my.cnf && systemctl restart mysqld
    
    
     
    
    
    3.3、修改root数据库账号密码方式二
    
     
    
    mysql> set password=password("youpassword");
    
    mysql> alter user 'root'@'localhost' identified by '123456';
    ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
    
    报错不用管,接着输入下面
    
    mysql> FLUSH PRIVILEGES;
    Query OK, 0 rows affected (0.02 sec)
    
    mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' identified by 'zihao@666';
    Query OK, 0 rows affected, 1 warning (0.02 sec)
    mysql>grant all on *.* to root@'localhost' identified by 'zihao@666';
    mysql> alter user 'root'@'localhost' identified by 'zihao@666';
    mysql> FLUSH PRIVILEGES;
    
    修改后把kip-grant-tables注释掉重启mysql
    
    systemctl stop mysqld &&  sed -i 's/skip-grant-tables/#skip-grant-tables/g' /etc/my.cnf && systemctl restart mysqld
    
     
    
    3.4、用修改后的密码登录mysql
    
     
    
    [root@bogon local]# mysql -u root -pzihao@666
    mysql: [Warning] Using a password on the command line interface can be insecure.
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 2
    Server version: 5.7.22-log MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    mysql> 
     
    
     
    
    4、重置为简单版密码
    
     
    
    4.1、配置免密登录 、重启mysql、登录mysql
    
     
    
    [root@ecs-03 mysql]# vi /etc/my.cnf
    
    删掉:kip-grant-tables ,
    添加:validate_password=off :可以修改成简单的密码
    
    然后重启:
    
    [mysqld]
    validate_password=off
    #skip-grant-tables
    
     
    
    4.2、修改root数据库账号密码同上
    
     
    
    5、修改字符为utf8mb4
    
     
    
    安装完成后需要修改字符满足生产需求,之前公司就是总是出现乱码,后来改成utf8mb4问题解决
    
    临时修改
    
    mysql>show variables like 'character%';
    
    mysql>set character_set_database=utf8mb4;
    
    mysql>set character_set_server=utf8mb4;
    
    永久修改
    
    systemctl stop mysqld && sed -i -e 's/character-set-server = utf8/character-set-server = utf8mb4/g' -e '/client/ adefault-character-set = utf8mb4' -e '$adefault-character-set = utf8mb4' /etc/my.cnf && systemctl start mysqld
    
    注意:character_set_database=utf8mb4 这句话不要写到配置文件里面,否则启动报错
    
    要达到的效果
    
    mysql> show variables like 'character%';
    +--------------------------+----------------------------------+
    | Variable_name | Value |
    +--------------------------+----------------------------------+
    | character_set_client | utf8mb4 |
    | character_set_connection | utf8mb4 |
    | character_set_database | utf8mb4 |
    | character_set_filesystem | binary |
    | character_set_results | utf8mb4 |
    | character_set_server | utf8mb4 |
    | character_set_system | utf8 |
    | character_sets_dir | /usr/local/mysql/share/charsets/ |
    +--------------------------+----------------------------------+
    8 rows in set (0.01 sec)
    
     
     
  • 相关阅读:
    python 发送带有附件的邮件
    【转】python的定时任务
    git 日常命令
    go之基础语法等相关内容-148
    redis集群等相关内容-147
    redis高级部分等相关内容-146
    sqlachemy之增删改查等相关内容-145
    flask之wtforms、信号、sqlalchemy等相关内容-144
    flask之上下文源码、flask-session、数据库连接池、flask-script等相关内容-143
    flask之中间件、蓝图、请求上下文等相关内容-142
  • 原文地址:https://www.cnblogs.com/effortsing/p/10006671.html
Copyright © 2011-2022 走看看