下载安装包

MySQL

  1. 下载依赖和驱动

    1. # 下载安装包和JDBC驱动,共计6个,源文件不带序号,此处标记序号是为了后续依顺序安装
    2. 01_mysql-community-common-5.7.16-1.el7.x86_64.rpm
    3. 02_mysql-community-libs-5.7.16-1.el7.x86_64.rpm
    4. 03_mysql-community-libs-compat-5.7.16-1.el7.x86_64.rpm
    5. 04_mysql-community-client-5.7.16-1.el7.x86_64.rpm
    6. 05_mysql-community-server-5.7.16-1.el7.x86_64.rpm
    7. mysql-connector-java-5.1.27-bin.jar
  2. 安装MySQL依赖

    1. [hadoop@iZnm201imn18dkgebcpx40Z module]$ sudo rpm -ivh 01_mysql-community-common-5.7.16-1.el7.x86_64.rpm
    2. [hadoop@iZnm201imn18dkgebcpx40Z module]$ sudo rpm -ivh 02_mysql-community-libs-5.7.16-1.el7.x86_64.rpm
    3. [hadoop@iZnm201imn18dkgebcpx40Z module]$ sudo rpm -ivh 03_mysql-community-libs-compat-5.7.16-1.el7.x86_64.rpm
  3. 安装mysql-client

    1. [hadoop@iZnm201imn18dkgebcpx40Z module]$ sudo rpm -ivh 04_mysql-community-client-5.7.16-1.el7.x86_64.rpm
  4. 安装mysql-server

    1. [hadoop@iZnm201imn18dkgebcpx40Z module]$ sudo rpm -ivh 05_mysql-community-server-5.7.16-1.el7.x86_64.rpm

    如果如下报错,则是因为yum安装了旧版本的GPG keys所造成,从rpm版本4.1后,在安装或升级软件包时会自动检查软件包的签名。

    1. [hadoop@iZnm201imn18dkgebcpx40Z 6.Mysql]$ sudo rpm -ivh 05_mysql-community-server-5.7.16-1.el7.x86_64.rpm
    2. warning: 05_mysql-community-server-5.7.16-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
    3. error: Failed dependencies:
    4. libaio.so.1()(64bit) is needed by mysql-community-server-5.7.16-1.el7.x86_64
    5. libaio.so.1(LIBAIO_0.1)(64bit) is needed by mysql-community-server-5.7.16-1.el7.x86_64
    6. libaio.so.1(LIBAIO_0.4)(64bit) is needed by mysql-community-server-5.7.16-1.el7.x86_64

    解决方法

    1. sudo rpm -ivh 05_mysql-community-server-5.7.16-1.el7.x86_64.rpm --force --nodeps

    启动MySQL

  5. 启动

    1. sudo systemctl start mysqld
  6. 启动报错 ```bash [hadoop@iZnm201imn18dkgebcpx40Z 6.Mysql]$ sudo systemctl start mysqld Job for mysqld.service failed because the control process exited with error code. See “systemctl status mysqld.service” and “journalctl -xe” for details. [hadoop@iZnm201imn18dkgebcpx40Z 6.Mysql]$ sudo systemctl status mysqld ● mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: failed (Result: start-limit) since Sun 2022-01-09 16:08:04 CST; 29s ago Process: 8516 ExecStart=/usr/sbin/mysqld —daemonize —pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=127) Process: 8491 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)

Jan 09 16:08:04 iZnm201imn18dkgebcpx40Z systemd[1]: Failed to start MySQL Server. Jan 09 16:08:04 iZnm201imn18dkgebcpx40Z systemd[1]: Unit mysqld.service entered failed state. Jan 09 16:08:04 iZnm201imn18dkgebcpx40Z systemd[1]: mysqld.service failed. Jan 09 16:08:04 iZnm201imn18dkgebcpx40Z systemd[1]: mysqld.service holdoff time over, scheduling restart. Jan 09 16:08:04 iZnm201imn18dkgebcpx40Z systemd[1]: start request repeated too quickly for mysqld.service Jan 09 16:08:04 iZnm201imn18dkgebcpx40Z systemd[1]: Failed to start MySQL Server. Jan 09 16:08:04 iZnm201imn18dkgebcpx40Z systemd[1]: Unit mysqld.service entered failed state. Jan 09 16:08:04 iZnm201imn18dkgebcpx40Z systemd[1]: mysqld.service failed.

  1. 3. 解决,按照提示输入journalctl -xe,发现erro部分是缺少libaio库(本机是阿里云服务器,最小化安装导致的),yum install -y libaio后重新启动即可
  2. ```bash
  3. [root@iZnm201imn18dkgebcpx40Z ~]# journalctl -xe
  4. -- The result is failed.
  5. Jan 09 16:18:48 iZnm201imn18dkgebcpx40Z systemd[1]: Unit mysqld.service entered failed state.
  6. Jan 09 16:18:48 iZnm201imn18dkgebcpx40Z systemd[1]: mysqld.service failed.
  7. Jan 09 16:18:48 iZnm201imn18dkgebcpx40Z systemd[1]: mysqld.service holdoff time over, scheduling restart.
  8. Jan 09 16:18:48 iZnm201imn18dkgebcpx40Z systemd[1]: Starting MySQL Server...
  9. -- Subject: Unit mysqld.service has begun start-up
  10. -- Defined-By: systemd
  11. -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
  12. --
  13. -- Unit mysqld.service has begun starting up.
  14. Jan 09 16:18:48 iZnm201imn18dkgebcpx40Z mysqld_pre_systemd[10177]: /usr/sbin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
  15. Jan 09 16:18:48 iZnm201imn18dkgebcpx40Z mysqld[10202]: /usr/sbin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
  16. Jan 09 16:18:48 iZnm201imn18dkgebcpx40Z systemd[1]: mysqld.service: control process exited, code=exited status=127
  17. Jan 09 16:18:48 iZnm201imn18dkgebcpx40Z systemd[1]: Failed to start MySQL Server.
  18. [root@iZnm201imn18dkgebcpx40Z ~]# yum install -y libaio
  19. [root@iZnm201imn18dkgebcpx40Z ~]# systemctl start mysqld
  1. 查看初始密码 ```bash sudo cat /var/log/mysqld.log | grep password

A temporary password is generated for root@localhost: (=+4%5wRs(Me

<a name="HItQU"></a>
## 配置MySQL
<a name="ragQ8"></a>
### 配置root可以在任何主机登录和修改密码

1. 进入MySQL

mysql -uroot -p'你的密码'

2. 修改密码(由于密码策略问题,此处密码需要有一定复杂度)
```bash
mysql> set password=password('你的密码');
  1. 修改密码策略

    mysql> set global validate_password_length=4;
    mysql> set global validate_password_policy=0;
    
  2. 进入MySQL库

    mysql> use mysql
    
  3. 修改user表,把root用户的host字段内容修改为%(生产环境不要这么设置)

    update user set host="%" where user="root";
    # 之后刷新权限
    flush privileges;
    

    新增用户

    ```sql

    模板

    CREATE USER ‘username’@’host’ IDENTIFIED BY ‘password’;

示例

CREATE USER ‘hive’@’10.10.204.91’ IDENTIFIED BY ‘hive123456’; CREATE USER ‘hive’@’localhost’ IDENTIFIED BY ‘123456’; CREATE USER ‘jh_djd’@’188.3.10.213’ IDENTIFIED BY ‘%LViQWB^G6F^5CEMaR’;

CREATE USER ‘hive’@’172.20.0.0/255.255.0.0’ IDENDIFIED BY ‘123456’;

CREATE USER ‘hive’@’%’ IDENTIFIED BY ‘123456’;

CREATE USER ‘hive’@’%’ IDENTIFIED BY ‘’;

CREATE USER ‘hive’@’%’;

<a name="RqZ7o"></a>
# 修改数据库权限
```sql
# 修改 {user} 和 {password} 为你的用户名和密码
GRANT ALL PRIVILEGES ON database.table_name TO '{user}'@'%' IDENTIFIED BY '{password}';
# 示例
GRANT ALL PRIVILEGES ON metastore.* TO '{user}'@'%' IDENTIFIED BY '{password}';
GRANT ALL PRIVILEGES ON jhdjd.* TO 'jh_djd'@'%' IDENTIFIED BY '%LViQWB^G6F^5CEMaR';
GRANT ALL PRIVILEGES ON metastore.* TO '{user}'@'localhost' IDENTIFIED BY '{password}';