zoukankan      html  css  js  c++  java
  • MySQL 8.0.11安装配置

    官网地址:https://dev.mysql.com/downloads/mysql/

    我这里是RHEL6.5的系统,因此选择RedHat 6 x86,64bit操作系统---下载第一个RPM Bundle即可--mysql-8.0.11-1.el6.x86_64.rpm-bundle.tar。

    目前MySQL8.0.11社区版提供了多种多样的安装方式,你也可以通过下载Linux Generic安装包mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz来安装,这种安装方式无需考虑包兼容性,本文只描述rpm安装方式。

    wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.11-1.el6.x86_64.rpm-bundle.tar
    

    如果上述链接失效,一般是因为官网已经更新了新版本,找到最新版本的版本号修改下载即可。

    一、mysql-8.0.11-1.el6.x86_64.rpm-bundle.tar解压后有如下7个文件:

    -rw-r--r-- 1 root root  28987588 Apr  9 01:06 mysql-community-client-8.0.11-1.el6.x86_64.rpm
    -rw-r--r-- 1 root root    672184 Apr  9 01:06 mysql-community-common-8.0.11-1.el6.x86_64.rpm
    -rw-r--r-- 1 root root   4443296 Apr  9 01:06 mysql-community-devel-8.0.11-1.el6.x86_64.rpm
    -rw-r--r-- 1 root root   2579460 Apr  9 01:06 mysql-community-libs-8.0.11-1.el6.x86_64.rpm
    -rw-r--r-- 1 root root   1902676 Apr  9 01:06 mysql-community-libs-compat-8.0.11-1.el6.x86_64.rpm
    -rw-r--r-- 1 root root 395918848 Apr  9 01:07 mysql-community-server-8.0.11-1.el6.x86_64.rpm
    -rw-r--r-- 1 root root  49092596 Apr  9 01:07 mysql-community-test-8.0.11-1.el6.x86_64.rpm
    

    然后创建mysql用户:

    useradd mysql
    passwd mysql
    

    二、安装顺序为:(强烈建议装之前先把之前的或自带的mysql相关包全部卸载,rpm -e --nodeps <包名>即可)

    rpm -ivh mysql-community-common-8.0.11-1.el6.x86_64.rpm 
    mysql-community-libs-8.0.11-1.el6.x86_64.rpm 
    mysql-community-libs-compat-8.0.11-1.el6.x86_64.rpm 
    mysql-community-client-8.0.11-1.el6.x86_64.rpm 
    mysql-community-server-8.0.11-1.el6.x86_64.rpm 
    mysql-community-devel-8.0.11-1.el6.x86_64.rpm
    

    三、安装完毕后相关信息如下:

    [root@python ~]# mysql -V
    mysql  Ver 8.0.11 for Linux on x86_64 (MySQL Community Server - GPL)
    [root@python ~]# ll /etc/init.d/mysqld 
    -rwxr-xr-x 1 root root 7166 Apr  8 16:21 /etc/init.d/mysqld
    [root@python ~]# ll /etc/my.cnf --配置文件位置
    -rw-r--r-- 1 root root 1188 Apr  8 16:21 /etc/my.cnf
    

    默认的datadir是在/var/lib/mysql/,可以通过修改my.cnf修改,启动命令如下:

    [root@python ~]# service mysqld start
    Initializing MySQL database:                               [  OK  ]
    Starting mysqld:                                           [  OK  ]
    

    四、使用默认密码登录MySQL

    在安装完后,/var/log/mysqld.log里应该含有临时的root密码,可以直接登录,你可以将此root密码更改为自己更熟悉的密码。

    mysql> alter user root@'localhost' identified by 'mysql';
    ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
    

    这里存在密码复杂度要求(在Windows平台使用msi安装mysql时,则有自主选择密码认证方式的步骤,可以比较方便的进行设置。):

    mysql> show variables like '%pass%';
    +----------------------------------------------+-----------------+
    | Variable_name                                | Value           |
    +----------------------------------------------+-----------------+
    | caching_sha2_password_auto_generate_rsa_keys | ON              |
    | caching_sha2_password_private_key_path       | private_key.pem |
    | caching_sha2_password_public_key_path        | public_key.pem  |
    | default_password_lifetime                    | 0               |
    | disconnect_on_expired_password               | ON              |
    | mysql_native_password_proxy_users            | OFF             |
    | password_history                             | 0               |
    | password_reuse_interval                      | 0               |
    | report_password                              |                 |
    | sha256_password_auto_generate_rsa_keys       | ON              |
    | sha256_password_private_key_path             | private_key.pem |
    | sha256_password_proxy_users                  | OFF             |
    | sha256_password_public_key_path              | public_key.pem  |
    | 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               |
    +----------------------------------------------+-----------------+
    

    查看官网https://dev.mysql.com/doc/refman/8.0/en/validate-password-options-variables.html#sysvar_validate_password.policy

    发现此值有3个,如下所示:

    于是设置为0,然后将validate_password.length设置为4,表示最少需要4字符。之所以设置为4是因为这个参数的值不能小于如下公式的计算结果:

    validate_password.number_count
    + validate_password.special_char_count
    + (2 * validate_password.mixed_case_count)

    五、建一个测试用户leo,尝试远程连接下吧:

    $ mysql -uleo -pmysql -h192.168.1.193
    mysql: [Warning] Using a password on the command line interface can be insecure.
    ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory

    我这5.7的mysql工具都连不上,这就尴尬了,查看认证相关参数:

    mysql> show variables like '%auth%';
    +-------------------------------+-----------------------+
    | Variable_name                 | Value                 |
    +-------------------------------+-----------------------+
    | default_authentication_plugin | caching_sha2_password |
    +-------------------------------+-----------------------+
    1 row in set (0.02 sec)

    查看官网发现此值的取值如下:

    官网还说此值影响create user不显式指定auth plugin时密码的默认加密算法,这意味着低版本的mysql工具基本连不上8.0,简单起见我们直接使用以前的加密算法。

    mysql> select user,host,plugin from mysql.user;
    +------------------+-----------+-----------------------+
    | user             | host      | plugin                |
    +------------------+-----------+-----------------------+
    | leo              | %         | caching_sha2_password |
    | mysql.infoschema | localhost | mysql_native_password |
    | mysql.session    | localhost | mysql_native_password |
    | mysql.sys        | localhost | mysql_native_password |
    | root             | localhost | caching_sha2_password |
    +------------------+-----------+-----------------------+

    在my.cnf里添加:default_authentication_plugin=mysql_native_password,然后service mysqld restart重启服务,以下只演示leo用户的创建:

    mysql> drop user leo;
    Query OK, 0 rows affected (0.10 sec)
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)
    mysql> create user leo identified by 'mysql';
    Query OK, 0 rows affected (0.02 sec)
    mysql> grant all on *.* to leo;
    Query OK, 0 rows affected (0.08 sec)
    $mysql -V
    mysql  Ver 14.14 Distrib 5.7.20, for Linux (x86_64) using  EditLine wrapper
    $ mysql -uleo -pmysql -h192.168.1.193
    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 16
    Server version: 8.0.11 MySQL Community Server - GPL
    
    Copyright (c) 2000, 2017, 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> 

    至此远程连接正常。

  • 相关阅读:
    每日扫盲(四):java之Netty原理和使用
    每日扫盲(三):id_rsa、id_rsa.pub 、authorized_keys
    每日扫盲(二):xxx.dll文件的作用
    每日扫盲(一):java的rmi
    工具列表
    hadoop学习笔记(七):hadoop2.x的高可用HA(high avaliable)和联邦F(Federation)
    window.history对象
    window.location对象
    推送本地文件夹到github
    docker的使用01
  • 原文地址:https://www.cnblogs.com/leohahah/p/9044904.html
Copyright © 2011-2022 走看看