zoukankan      html  css  js  c++  java
  • MySQL数据库安装后的安全设置

    导语:

    已经通过报的方式安装了mysql,装完之后有些安全设置必须要做。
    装完以后数据库已经可以使用了,但是有安全风险。
    风险在访问数据库不需要任何信息就可以访问。

    [10:17:02 root@C8[ ~]#mysql
    Welcome to the MariaDB monitor.  Commands end with ; or g.
    Your MariaDB connection id is 8
    Server version: 10.4.13-MariaDB MariaDB Server
    
    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    MariaDB [(none)]> 
    

    先期检查

    查看一下服务器端程序状态

    • 服务器端主程序:1035 (mysqld)
    • 主程序路径:/usr/sbin/mysqld
    [10:15:59 root@C8[ ~]#systemctl status mysql
    ● mariadb.service - MariaDB 10.4.13 database server
       Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: >
      Drop-In: /etc/systemd/system/mariadb.service.d
               └─migrated-from-my.cnf-settings.conf
       Active: active (running) since Thu 2020-06-04 10:15:21 CST; 50s ago
         Docs: man:mysqld(8)
               https://mariadb.com/kb/en/library/systemd/
      Process: 1192 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_PO>
      Process: 1011 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||>
      Process: 984 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSI>
     Main PID: 1035 (mysqld)  #***服务器端主程序***
       Status: "Taking your SQL requests now..."
        Tasks: 30 (limit: 11330)
       Memory: 100.8M
       CGroup: /system.slice/mariadb.service
               └─1035 /usr/sbin/mysqld #***主程序路径***
    
    Jun 04 10:15:21 C8 mysqld[1035]: 2020-06-04 10:15:21 0 [Note] InnoDB: 10.4.13 starte>
    Jun 04 10:15:21 C8 mysqld[1035]: 2020-06-04 10:15:21 0 [Note] Plugin 'FEEDBACK' is d>
    Jun 04 10:15:21 C8 mysqld[1035]: 2020-06-04 10:15:21 0 [Note] InnoDB: Loading buffer>
    Jun 04 10:15:21 C8 mysqld[1035]: 2020-06-04 10:15:21 0 [Note] InnoDB: Buffer pool(s)>
    Jun 04 10:15:21 C8 mysqld[1035]: 2020-06-04 10:15:21 0 [Note] Server socket created >
    Jun 04 10:15:21 C8 mysqld[1035]: 2020-06-04 10:15:21 0 [Note] Reading of all Master_>
    Jun 04 10:15:21 C8 mysqld[1035]: 2020-06-04 10:15:21 0 [Note] Added new Master_info >
    Jun 04 10:15:21 C8 mysqld[1035]: 2020-06-04 10:15:21 0 [Note] /usr/sbin/mysqld: read>
    Jun 04 10:15:21 C8 mysqld[1035]: Version: '10.4.13-MariaDB'  socket: '/var/lib/mysql>
    Jun 04 10:15:21 C8 systemd[1]: Started MariaDB 10.4.13 database server.
    

    查看主程序进程信息

    通过查看进程信息,我们可以看到,主进程是通过mysql这个用户运行的。
    这个进程是一个l,目前mysql运行的方式是以多线程运行的。

    [10:21:55 root@C8[ ~]#ps aux | grep 1035
    mysql      1035  0.0  4.9 1298628 92332 ?       Ssl  10:15   0:00 /usr/sbin/mysqld
    root       1823  0.0  0.0  12108  1028 pts/0    R+   10:26   0:00 grep --color=auto 1035
    

    可以通过pstree查看进程树。可以通过 ps auxf 查看父进程。
    有一个进程,里面生成了若干个线程。

    [10:32:31 root@C8[ ~]#pstree -p |grep mysql
               |-mysqld(1035)-+-{mysqld}(1037)
               |              |-{mysqld}(1088)
               |              |-{mysqld}(1106)
               |              |-{mysqld}(1110)
               |              |-{mysqld}(1111)
               |              |-{mysqld}(1112)
               |              |-{mysqld}(1113)
               |              |-{mysqld}(1114)
               |              |-{mysqld}(1115)
               |              |-{mysqld}(1116)
               |              |-{mysqld}(1117)
               |              |-{mysqld}(1118)
               |              |-{mysqld}(1119)
               |              |-{mysqld}(1159)
               |              |-{mysqld}(1160)
    

    确定mysql账号信息

    可以看出mysql是安装软件时自动创建的

    • 用户mysql家目录:/var/lib/mysql
    • 用户mysql的Shell类型:/sbin/nologin
    [10:32:41 root@C8[ ~]#cat /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    ……
    mysql:x:989:985:MySQL server:/var/lib/mysql:/sbin/nologin
    

    查看目录/var/lib/mysql内容

    /var/lib/mysql 里放的就是真正数据库的数据

    [10:42:33 root@C8[ ~]#ll -h  /var/lib/mysql
    total 121M
    -rw-rw----. 1 mysql mysql  24K Jun  2 08:47 aria_log.00000001
    -rw-rw----. 1 mysql mysql   52 Jun  2 08:47 aria_log_control
    -rw-rw----. 1 mysql mysql    5 Jun  4 10:15 C8.pid
    -rw-rw----. 1 mysql mysql  972 Jun  2 08:47 ib_buffer_pool
    -rw-rw----. 1 mysql mysql  12M Jun  2 08:47 ibdata1
    -rw-rw----. 1 mysql mysql  48M Jun  4 10:15 ib_logfile0
    -rw-rw----. 1 mysql mysql  48M Jun  2 08:47 ib_logfile1
    -rw-rw----. 1 mysql mysql  12M Jun  4 10:15 ibtmp1
    -rw-rw----. 1 mysql mysql    0 Jun  2 08:56 multi-master.info
    drwx------. 2 mysql mysql 4.0K Jun  2 08:47 mysql
    srwxrwxrwx. 1 mysql mysql    0 Jun  4 10:15 mysql.sock
    drwx------. 2 mysql mysql   20 Jun  2 08:47 performance_schema
    drwx------. 2 mysql mysql   20 Jun  2 08:47 test
    

    mysql内部账户

    mysql有自己的用户账户列表,和系统的账户没有关系
    用户的账户列表也是存放在数据库的这个目录里的

    客户端工具mysql

    在安装好服务器主程序的同时,已经安装好客户端程序,也叫mysql

    [10:42:50 root@C8[ ~]#type mysql
    mysql is hashed (/usr/bin/mysql)
    [10:53:18 root@C8[ ~]#which mysql
    /usr/bin/mysql
    

    我们可以看一些这个工具来自哪个包

    [11:21:21 root@C8[ ~]#rpm -qf `which mysql`
    MariaDB-client-10.4.13-1.el8.x86_64
    

    这个客户端工具可以用它来连接数据库,不仅可以用来连接当前主机的数据库,还可以用来连接远程主机的数据库。

    连接本机的数据库

    [11:21:26 root@C8[ ~]#mysql
    Welcome to the MariaDB monitor.  Commands end with ; or g.
    Your MariaDB connection id is 10
    Server version: 10.4.13-MariaDB MariaDB Server
    
    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    MariaDB [(none)]> 
    

    安装好数据库之后,默认有3个实体数据库。
    有一个数据库比较特殊,information_schema内存中的数据库,没有文件夹。

    MariaDB [(none)]> show datanases;
    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'datanases' at line 1
    MariaDB [(none)]> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | test               |
    +--------------------+
    4 rows in set (0.005 sec)
    

    进入默认mysql数据库

    mysql文件夹中有很多很多的表

    [11:39:39 root@C8[ ~]#ll -h  /var/lib/mysql/mysql
    total 2.7M
    -rw-------. 1 mysql mysql 2.1K Jun  2 08:47 columns_priv.frm
    -rw-------. 1 mysql mysql 8.0K Jun  2 08:47 columns_priv.MAD
    -rw-------. 1 mysql mysql 8.0K Jun  2 08:47 columns_priv.MAI
    -rw-------. 1 mysql mysql 2.6K Jun  2 08:47 column_stats.frm
    -rw-------. 1 mysql mysql 8.0K Jun  2 08:47 column_stats.MAD
    -rw-------. 1 mysql mysql 8.0K Jun  2 08:47 column_stats.MAI
    -rw-------. 1 mysql mysql 2.7K Jun  2 08:47 db.frm
    -rw-------. 1 mysql mysql  16K Jun  2 08:47 db.MAD
    -rw-------. 1 mysql mysql  24K Jun  2 08:47 db.MAI
    -rw-------. 1 mysql mysql   65 Jun  2 08:47 db.opt
    -rw-------. 1 mysql mysql 3.7K Jun  2 08:47 event.frm
    -rw-------. 1 mysql mysql 8.0K Jun  2 08:47 event.MAD
    -rw-------. 1 mysql mysql 8.0K Jun  2 08:47 event.MAI
    -rw-------. 1 mysql mysql 1.6K Jun  2 08:47 func.frm
    -rw-------. 1 mysql mysql 8.0K Jun  2 08:47 func.MAD
    -rw-------. 1 mysql mysql 8.0K Jun  2 08:47 func.MAI
    -rw-------. 1 mysql mysql   35 Jun  2 08:47 general_log.CSM
    -rw-------. 1 mysql mysql    0 Jun  2 08:47 general_log.CSV
    -rw-------. 1 mysql mysql  804 Jun  2 08:47 general_log.frm
    -rw-------. 1 mysql mysql 1.5K Jun  2 08:47 global_priv.frm
    -rw-------. 1 mysql mysql  16K Jun  2 08:47 global_priv.MAD
    -rw-------. 1 mysql mysql  16K Jun  2 08:47 global_priv.MAI
    -rw-------. 1 mysql mysql 1.0K Jun  2 08:47 gtid_slave_pos.frm
    -rw-------. 1 mysql mysql  96K Jun  2 08:47 gtid_slave_pos.ibd
    -rw-------. 1 mysql mysql 1.7K Jun  2 08:47 help_category.frm
    -rw-------. 1 mysql mysql  16K Jun  2 08:47 help_category.MAD
    -rw-------. 1 mysql mysql  24K Jun  2 08:47 help_category.MAI
    -rw-------. 1 mysql mysql 1.6K Jun  2 08:47 help_keyword.frm
    -rw-------. 1 mysql mysql  16K Jun  2 08:47 help_keyword.MAD
    -rw-------. 1 mysql mysql  24K Jun  2 08:47 help_keyword.MAI
    -rw-------. 1 mysql mysql  968 Jun  2 08:47 help_relation.frm
    -rw-------. 1 mysql mysql  16K Jun  2 08:47 help_relation.MAD
    -rw-------. 1 mysql mysql  16K Jun  2 08:47 help_relation.MAI
    -rw-------. 1 mysql mysql 1.8K Jun  2 08:47 help_topic.frm
    -rw-------. 1 mysql mysql 1.6M Jun  2 08:47 help_topic.MAD
    -rw-------. 1 mysql mysql  40K Jun  2 08:47 help_topic.MAI
    -rw-------. 1 mysql mysql 1.6K Jun  2 08:47 index_stats.frm
    -rw-------. 1 mysql mysql 8.0K Jun  2 08:47 index_stats.MAD
    -rw-------. 1 mysql mysql 8.0K Jun  2 08:47 index_stats.MAI
    -rw-------. 1 mysql mysql 5.3K Jun  2 08:47 innodb_index_stats.frm
    -rw-------. 1 mysql mysql  96K Jun  2 08:47 innodb_index_stats.ibd
    -rw-------. 1 mysql mysql 1.9K Jun  2 08:47 innodb_table_stats.frm
    -rw-------. 1 mysql mysql  96K Jun  2 08:47 innodb_table_stats.ibd
    -rw-------. 1 mysql mysql 1.5K Jun  2 08:47 plugin.frm
    -rw-------. 1 mysql mysql 8.0K Jun  2 08:47 plugin.MAD
    -rw-------. 1 mysql mysql 8.0K Jun  2 08:47 plugin.MAI
    -rw-------. 1 mysql mysql 3.5K Jun  2 08:47 proc.frm
    -rw-------. 1 mysql mysql  16K Jun  2 08:47 proc.MAD
    -rw-------. 1 mysql mysql  16K Jun  2 08:47 proc.MAI
    -rw-------. 1 mysql mysql 2.9K Jun  2 08:47 procs_priv.frm
    -rw-------. 1 mysql mysql 8.0K Jun  2 08:47 procs_priv.MAD
    -rw-------. 1 mysql mysql 8.0K Jun  2 08:47 procs_priv.MAI
    -rw-------. 1 mysql mysql 2.8K Jun  2 08:47 proxies_priv.frm
    -rw-------. 1 mysql mysql  16K Jun  2 08:47 proxies_priv.MAD
    -rw-------. 1 mysql mysql  24K Jun  2 08:47 proxies_priv.MAI
    -rw-------. 1 mysql mysql 1.7K Jun  2 08:47 roles_mapping.frm
    -rw-------. 1 mysql mysql 8.0K Jun  2 08:47 roles_mapping.MAD
    -rw-------. 1 mysql mysql 8.0K Jun  2 08:47 roles_mapping.MAI
    -rw-------. 1 mysql mysql 9.8K Jun  2 08:47 servers.frm
    -rw-------. 1 mysql mysql 8.0K Jun  2 08:47 servers.MAD
    -rw-------. 1 mysql mysql 8.0K Jun  2 08:47 servers.MAI
    -rw-------. 1 mysql mysql   35 Jun  2 08:47 slow_log.CSM
    -rw-------. 1 mysql mysql    0 Jun  2 08:47 slow_log.CSV
    -rw-------. 1 mysql mysql 2.4K Jun  2 08:47 slow_log.frm
    -rw-------. 1 mysql mysql 3.0K Jun  2 08:47 tables_priv.frm
    -rw-------. 1 mysql mysql  16K Jun  2 08:47 tables_priv.MAD
    -rw-------. 1 mysql mysql  24K Jun  2 08:47 tables_priv.MAI
    -rw-------. 1 mysql mysql 1.4K Jun  2 08:47 table_stats.frm
    -rw-------. 1 mysql mysql 8.0K Jun  2 08:47 table_stats.MAD
    -rw-------. 1 mysql mysql 8.0K Jun  2 08:47 table_stats.MAI
    -rw-------. 1 mysql mysql  971 Jun  2 08:47 time_zone.frm
    -rw-------. 1 mysql mysql  969 Jun  2 08:47 time_zone_leap_second.frm
    -rw-------. 1 mysql mysql 8.0K Jun  2 08:47 time_zone_leap_second.MAD
    -rw-------. 1 mysql mysql 8.0K Jun  2 08:47 time_zone_leap_second.MAI
    -rw-------. 1 mysql mysql 8.0K Jun  2 08:47 time_zone.MAD
    -rw-------. 1 mysql mysql 8.0K Jun  2 08:47 time_zone.MAI
    -rw-------. 1 mysql mysql 1.2K Jun  2 08:47 time_zone_name.frm
    -rw-------. 1 mysql mysql 8.0K Jun  2 08:47 time_zone_name.MAD
    -rw-------. 1 mysql mysql 8.0K Jun  2 08:47 time_zone_name.MAI
    -rw-------. 1 mysql mysql 1011 Jun  2 08:47 time_zone_transition.frm
    -rw-------. 1 mysql mysql 8.0K Jun  2 08:47 time_zone_transition.MAD
    -rw-------. 1 mysql mysql 8.0K Jun  2 08:47 time_zone_transition.MAI
    -rw-------. 1 mysql mysql 1.1K Jun  2 08:47 time_zone_transition_type.frm
    -rw-------. 1 mysql mysql 8.0K Jun  2 08:47 time_zone_transition_type.MAD
    -rw-------. 1 mysql mysql 8.0K Jun  2 08:47 time_zone_transition_type.MAI
    -rw-------. 1 mysql mysql 2.6K Jun  2 08:47 transaction_registry.frm
    -rw-------. 1 mysql mysql 144K Jun  2 08:47 transaction_registry.ibd
    -rw-------. 1 mysql mysql  14K Jun  2 08:47 user.frm
    

    相同文件名的每个表由多个不同文件组成。
    数据库服务器上可以跑好多好多独立的数据库
    每个数据库由好多张不同的表组成。

    mysql内部用户文件表

    user.frm 存放着用户信息,不是文本文件,不能直接看。
    想要看user.frm这个表,需要先进入mysql这个数据库。

    • 使用use命令进入数据库mysql。(use可以理解为进入,实际是打开、加载、使用这些use的本意)类似于cd。
    MariaDB [(none)]> 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
    MariaDB [mysql]> 
    
    • 显示有哪些表
    MariaDB [mysql]> show tables;
    +---------------------------+
    | Tables_in_mysql           |
    +---------------------------+
    | column_stats              |
    | columns_priv              |
    | db                        |
    | event                     |
    | func                      |
    | general_log               |
    | global_priv               |
    | gtid_slave_pos            |
    | help_category             |
    | help_keyword              |
    | help_relation             |
    | help_topic                |
    | index_stats               |
    | innodb_index_stats        |
    | innodb_table_stats        |
    | plugin                    |
    | proc                      |
    | procs_priv                |
    | proxies_priv              |
    | roles_mapping             |
    | servers                   |
    | slow_log                  |
    | table_stats               |
    | tables_priv               |
    | time_zone                 |
    | time_zone_leap_second     |
    | time_zone_name            |
    | time_zone_transition      |
    | time_zone_transition_type |
    | transaction_registry      |
    | user                      |
    +---------------------------+
    31 rows in set (0.000 sec)
    
    • 显示指定表中列的名称
      一个表中有很多行很多列,列名一般表示一列的用途
    MariaDB [mysql]> desc user;
    +------------------------+---------------------+------+-----+----------+-------+
    | Field                  | Type                | Null | Key | Default  | Extra |
    +------------------------+---------------------+------+-----+----------+-------+
    | Host                   | char(60)            | NO   |     |          |       |
    | User                   | char(80)            | NO   |     |          |       |
    | Password               | longtext            | YES  |     | NULL     |       |
    | Select_priv            | varchar(1)          | YES  |     | NULL     |       |
    | Insert_priv            | varchar(1)          | YES  |     | NULL     |       |
    | Update_priv            | varchar(1)          | YES  |     | NULL     |       |
    | Delete_priv            | varchar(1)          | YES  |     | NULL     |       |
    | Create_priv            | varchar(1)          | YES  |     | NULL     |       |
    | Drop_priv              | varchar(1)          | YES  |     | NULL     |       |
    | Reload_priv            | varchar(1)          | YES  |     | NULL     |       |
    | Shutdown_priv          | varchar(1)          | YES  |     | NULL     |       |
    | Process_priv           | varchar(1)          | YES  |     | NULL     |       |
    | File_priv              | varchar(1)          | YES  |     | NULL     |       |
    | Grant_priv             | varchar(1)          | YES  |     | NULL     |       |
    | References_priv        | varchar(1)          | YES  |     | NULL     |       |
    | Index_priv             | varchar(1)          | YES  |     | NULL     |       |
    | Alter_priv             | varchar(1)          | YES  |     | NULL     |       |
    | Show_db_priv           | varchar(1)          | YES  |     | NULL     |       |
    | Super_priv             | varchar(1)          | YES  |     | NULL     |       |
    | Create_tmp_table_priv  | varchar(1)          | YES  |     | NULL     |       |
    | Lock_tables_priv       | varchar(1)          | YES  |     | NULL     |       |
    | Execute_priv           | varchar(1)          | YES  |     | NULL     |       |
    | Repl_slave_priv        | varchar(1)          | YES  |     | NULL     |       |
    | Repl_client_priv       | varchar(1)          | YES  |     | NULL     |       |
    | Create_view_priv       | varchar(1)          | YES  |     | NULL     |       |
    | Show_view_priv         | varchar(1)          | YES  |     | NULL     |       |
    | Create_routine_priv    | varchar(1)          | YES  |     | NULL     |       |
    | Alter_routine_priv     | varchar(1)          | YES  |     | NULL     |       |
    | Create_user_priv       | varchar(1)          | YES  |     | NULL     |       |
    | Event_priv             | varchar(1)          | YES  |     | NULL     |       |
    | Trigger_priv           | varchar(1)          | YES  |     | NULL     |       |
    | Create_tablespace_priv | varchar(1)          | YES  |     | NULL     |       |
    | Delete_history_priv    | varchar(1)          | YES  |     | NULL     |       |
    | ssl_type               | varchar(9)          | YES  |     | NULL     |       |
    | ssl_cipher             | longtext            | NO   |     |          |       |
    | x509_issuer            | longtext            | NO   |     |          |       |
    | x509_subject           | longtext            | NO   |     |          |       |
    | max_questions          | bigint(20) unsigned | NO   |     | 0        |       |
    | max_updates            | bigint(20) unsigned | NO   |     | 0        |       |
    | max_connections        | bigint(20) unsigned | NO   |     | 0        |       |
    | max_user_connections   | bigint(21)          | NO   |     | 0        |       |
    | plugin                 | longtext            | NO   |     |          |       |
    | authentication_string  | longtext            | NO   |     |          |       |
    | password_expired       | varchar(1)          | NO   |     |          |       |
    | is_role                | varchar(1)          | YES  |     | NULL     |       |
    | default_role           | longtext            | NO   |     |          |       |
    | max_statement_time     | decimal(12,6)       | NO   |     | 0.000000 |       |
    +------------------------+---------------------+------+-----+----------+-------+
    47 rows in set (0.001 sec)
    
    • 显示想要看的表中的列
      表中的值太多,选想要的列看内容

    mysql的用户名由两部分组成,一部分是用户名,一部分是主机名
    mysql中不仅需要验证用户名和密码,还要确保访问数据库的主机是合法的。

    早期mysql密码存放在password中,现在存放在authentication_string中

    MariaDB [mysql]> select user,host,password,authentication_string from user;
    +-------------+-----------+----------+-----------------------+
    | User        | Host      | Password | authentication_string |
    +-------------+-----------+----------+-----------------------+
    | mariadb.sys | localhost |          |                       |
    | root        | localhost | invalid  | invalid               |
    | mysql       | localhost | invalid  | invalid               |
    |             | localhost |          |                       |
    |             | c8        |          |                       |
    +-------------+-----------+----------+-----------------------+
    5 rows in set (0.001 sec)
    

    mysql本身提供了一个超级用户root,权限很大。
    Current user显示当前登录的用户

    Current user:		root@localhost
    

    有两个账户给特定服务用的 mariadb.sys 和mysql

    还有两个空账户,代表匿名帐户,随便输入用户名都可以登录。
    除了root都是普通账号

    [12:29:25 root@C8[ ~]#mysql -ubaipangzi
    Welcome to the MariaDB monitor.  Commands end with ; or g.
    Your MariaDB connection id is 12
    Server version: 10.4.13-MariaDB MariaDB Server
    
    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    MariaDB [(none)]> status
    --------------
    mysql  Ver 15.1 Distrib 10.4.13-MariaDB, for Linux (x86_64) using readline 5.1
    
    Connection id:		12
    Current database:	
    Current user:		baipangzi@localhost
    SSL:			Not in use
    Current pager:		stdout
    Using outfile:		''
    Using delimiter:	;
    Server:			MariaDB
    Server version:		10.4.13-MariaDB MariaDB Server
    Protocol version:	10
    Connection:		Localhost via UNIX socket
    Server characterset:	latin1
    Db     characterset:	latin1
    Client characterset:	utf8
    Conn.  characterset:	utf8
    UNIX socket:		/var/lib/mysql/mysql.sock
    Uptime:			2 hours 14 min 29 sec
    
    Threads: 7  Questions: 56  Slow queries: 0  Opens: 36  Flush tables: 1  Open tables: 30  Queries per second avg: 0.006
    --------------
    
    MariaDB [(none)]> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | test               |
    +--------------------+
    2 rows in set (0.000 sec)
    
    MariaDB [(none)]> use mysql
    ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'
    

    安全加固

    查看当前数据库状态

    MariaDB [mysql]> status
    --------------
    mysql  Ver 15.1 Distrib 10.4.13-MariaDB, for Linux (x86_64) using readline 5.1
    
    Connection id:		11
    Current database:	mysql
    Current user:		root@localhost
    SSL:			Not in use
    Current pager:		stdout
    Using outfile:		''
    Using delimiter:	;
    Server:			MariaDB
    Server version:		10.4.13-MariaDB MariaDB Server
    Protocol version:	10
    Connection:		Localhost via UNIX socket
    Server characterset:	latin1
    Db     characterset:	latin1
    Client characterset:	utf8
    Conn.  characterset:	utf8
    UNIX socket:		/var/lib/mysql/mysql.sock
    Uptime:			2 hours 6 min 33 sec
    
    Threads: 7  Questions: 52  Slow queries: 0  Opens: 36  Flush tables: 1  Open tables: 30  Queries per second avg: 0.006
    --------------
    

    默认以root身份登录mysql

    安装完mysql后,密码为空,在敲mysql登录数据库的时候,事实上省略了-u选项。
    默认为-uroot
    10.4版之前,root账户空口零都是可以登陆的,早前的版本任何账户都可以匿名成root登录。

    安全加固脚本

    软件本身自带mysql_secure_installation安全加固脚本

    [12:38:33 root@C8[ ~]#rpm -qf `which mysql_secure_installation`
    MariaDB-server-10.4.13-1.el8.x86_64
    

    运行脚本

    [12:39:12 root@C8[ ~]#mysql_secure_installation
    
    NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
          SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
    
    In order to log into MariaDB to secure it, we'll need the current
    password for the root user. If you've just installed MariaDB, and
    haven't set the root password yet, you should just press enter here.
    
    Enter current password for root (enter for none): 
    
    * * * 胖并快乐着的死肥宅 * * *
  • 相关阅读:
    .net core3.1 abp动态菜单和动态权限(思路) (二)
    .net core3.1 abp学习开始(一)
    api.versioning 版本控制 自动识别最高版本
    .netcore 定制化项目开发的思考和实现
    netcore 非注入全局获取配置文件
    linux nginx搭建与使用
    linux docker .net core 从建立网站到预览
    linux 学习 mysql安装到连接
    linux 安装redis及问题收集
    为何说要多用组合少用继承?如何决定该用组合还是继承?
  • 原文地址:https://www.cnblogs.com/bpzblog/p/13042824.html
Copyright © 2011-2022 走看看