effortsing
安装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/ a\default-character-set = utf8mb4\' -e \'$a\default-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)

 
 

 

分类:

技术点:

相关文章:

  • 2021-12-05
  • 2021-12-20
  • 2021-12-16
  • 2022-01-13
  • 2021-10-10
  • 2021-10-10
  • 2021-10-14
  • 2021-08-01
猜你喜欢
  • 2021-07-31
  • 2021-11-03
  • 2021-11-20
  • 2021-11-03
  • 2021-11-23
  • 2021-05-03
  • 2021-11-16
相关资源
相似解决方案