暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

mysql使用笔记一

176

MySQL和postgresql是目前比较火的两大开源数据库,绝大多数国产数据库都衍生于此,MySQL从整个架构上、设计上和语法上讲类似于早期的Sybase,SQLServer也源之于Sybase,从应用上讲SQLServer更友好,功能更丰富,单体数据库性能也是最好的;MySQL还有诸多的限制,不过这里只是试验和笔记,不做赘述。


1、第一次登陆MySQL,需要从日志从获取初始密码

[root@localhost local]# grep 'temporary password' /var/log/mysqld.log
2022-06-16T04:41:36.3987366 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: oyazXUIps8)F
[root@localhost local]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.29

Copyright (c) 20002022, Oracle and/or its affiliates.

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.

复制

2、各项操作前需要先更新初始密码,再修改符合需要的密码策略

mysql> SHOW VARIABLES LIKE 'validate_password.%';
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1234@abcd';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1qaz!QAZ';
Query OK, 0 rows affected (0.01 sec)

mysql> SHOW VARIABLES LIKE 'validate_password.%';
+--------------------------------------+--------+
| 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.02 sec)

mysql> set global validate_password.length=6;
Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password.policy=0;
Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password.check_user_name=off;
Query OK, 0 rows affected (0.00 sec)

mysql> SHOW VARIABLES LIKE 'validate_password.%';
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password.check_user_name    | OFF   |
| validate_password.dictionary_file    |       |
| validate_password.length             | 6     |
| validate_password.mixed_case_count   | 1     |
| validate_password.number_count       | 1     |
| validate_password.policy             | LOW   |
| validate_password.special_char_count | 1     |
+--------------------------------------+-------+
7 rows in set (0.01 sec)


复制

3、进入数据,修改用户表,确保外部用户可以访问MySQL

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 where user='root';
+-----------+------+
| host      | user |
+-----------+------+
| localhost | root |
+-----------+------+
1 row in set (0.00 sec)

mysql> update user set host='%' where user='root';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select host,user from user where user='root';
+------+------+
| host | user |
+------+------+
| %    | root |
+------+------+
1 row in set (0.00 sec)

复制

4、给root用户外部用户赋权

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
ERROR 1410 (42000): You are not allowed to create a user with GRANT
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
Query OK, 0 rows affected (0.01 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

mysql> 

复制

5、修改配置文件,绑定IP地址,再修改防火墙,确保外部用户能访问端口

[root@localhost local]# netstat -anpt 
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      3667/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      5353/master         
tcp        0     52 192.168.13.50:22        123.123.123.2:52521     ESTABLISHED 4618/sshd: root@pts 
tcp        0      0 192.168.13.50:22        192.168.13.11:63249     ESTABLISHED 4546/sshd: root@pts 
tcp        0      0 192.168.13.50:22        123.123.123.2:64545     ESTABLISHED 4569/sshd: root@pts 
tcp6       0      0 :::3306                 :::*                    LISTEN      5439/mysqld         
tcp6       0      0 :::22                   :::*                    LISTEN      3667/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      5353/master         
tcp6       0      0 :::33060                :::*                    LISTEN      5439/mysqld         
pid-file=/var/run/mysqld/mysqld.pid
[root@localhost local]# vi /etc/my.cnf  
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html

[mysqld]

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld
.log
pid-file=/var/run/mysqld/mysqld.pid

bind-address=0.0.0.0
"/etc/my.cnf" 33L, 1265C written
[root@localhost local]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
[root@localhost local]# firewall-cmd --reload 
success
[root@localhost local]

复制

最后,谢谢关注,谢谢支持!




文章转载自python与大数据分析,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论