zoukankan      html  css  js  c++  java
  • CentOS7.5安装Mysql5.7.22

    一 下载

    下载地址:https://www.mysql.com/downloads/

    1 点击第一个链接地址,进入MySQL官方网站,单击“Downloads”下载Tab页,进入下载界面

    2 找到Community并且单击它,出现以下的页面

    3 点击左侧第五个“MySQL Community Server”,社区版

    4 进入下拉下载列表,选择在CentOS7上tar包安装

    4 进入下拉下载列表,这里选择在CentOS7上rpm包安装

    5 点击Download,进入如下界面,需要登录下载,这里选择

    6 下载成功

    二 RPM包安装

     下载文件名:mysql-5.7.22-1.el7.x86_64.rpm-bundle.tar

    1 安装包准备

    1.1 查看mysql是否安装,如果安装了,卸载mysql

    rpm -qa|grep mysql

    1.2 卸载

    rpm -e --nodeps mysql-libs-5.1.73-7.el6.x86_64

    2 解压安装

    2.1 创建目录

    [root@node21 software]# mkdir -p /usr/local/mysql

     2.2 解压

    [admin@node21 software]$ tar xvf /opt/software/mysql-5.7.22-1.el7.x86_64.rpm-bundle.tar  -C /usr/local/mysql
    mysql-community-client-5.7.22-1.el7.x86_64.rpm
    mysql-community-common-5.7.22-1.el7.x86_64.rpm
    mysql-community-devel-5.7.22-1.el7.x86_64.rpm
    mysql-community-embedded-5.7.22-1.el7.x86_64.rpm
    mysql-community-embedded-compat-5.7.22-1.el7.x86_64.rpm
    mysql-community-embedded-devel-5.7.22-1.el7.x86_64.rpm
    mysql-community-libs-5.7.22-1.el7.x86_64.rpm
    mysql-community-libs-compat-5.7.22-1.el7.x86_64.rpm
    mysql-community-minimal-debuginfo-5.7.22-1.el7.x86_64.rpm
    mysql-community-server-5.7.22-1.el7.x86_64.rpm
    mysql-community-server-minimal-5.7.22-1.el7.x86_64.rpm
    mysql-community-test-5.7.22-1.el7.x86_64.rpm

    2.3 安装

    依次执行(几个包有依赖关系,所以执行有先后)下面命令安装

    [root@node21 software]# cd /usr/local/mysql/
    [root@node21 mysql]# rpm -ivh mysql-community-libs-5.7.22-1.el7.x86_64.rpm
    [root@node21 mysql]# rpm -ivh mysql-community-client-5.7.22-1.el7.x86_64.rpm
    [root@node21 mysql]# rpm -ivh mysql-community-server-5.7.22-1.el7.x86_64.rpm

    安装过程报错"

    [root@node21 mysql]# rpm -ivh mysql-community-libs-5.7.22-1.el7.x86_64.rpm 
    warning: mysql-community-libs-5.7.22-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
    error: Failed dependencies:
        mysql-community-common(x86-64) >= 5.7.9 is needed by mysql-community-libs-5.7.22-1.el7.x86_64
        mariadb-libs is obsoleted by mysql-community-libs-5.7.22-1.el7.x86_64

     警告:红帽安装rpm安装MySQL时爆出警告:mysql-community-libs-5.7.22-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature,密钥 key ID 5072e1f5: NOKEY。

     原因:这是由于yum安装了旧版本的GPG keys造成的

     解决办法:后面加上  --force --nodeps 如:rpm -ivh mysql-community-libs-5.7.22-1.el7.x86_64.rpm --force --nodeps  从 RPM 版本 4.1 开始,在安装或升级软件包时会检查软件包的签名。

    3 初始化数据库

    为了保证数据库目录为与文件的所有者为 mysql 登陆用户,如果你是以 root 身份运行 mysql 服务,需要执行下面的命令初始化
    mysqld --initialize --user=mysql

    如果是以 mysql 身份运行,则可以去掉 --user 选项。

    另外 --initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将该密码标记为过期,登陆后你需要设置一个新的密码,而使用 --initialize-insecure 命令则不使用安全模式,则不会为 root 用户生成一个密码。

    这里演示使用的 --initialize 初始化,会生成一个 root 账户密码,密码在log文件里,红色区域的就是自动生成的密码

    [root@node21 mysql]# mysqld --initialize --user=mysql

    mysql配置文件在/etc/my.cnf,里面指明了数据目录。日志位置

    [root@node21 mysql]# cat /var/log/mysqld.log
    2018-05-19T05:53:03.738829Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentat
    ion for more details).2018-05-19T05:53:03.739304Z 0 [ERROR] Can't find error-message file '/usr/share/mysql/errmsg.sys'. Check error-message file location and 'lc-messages-dir' configuratio
    n directive.2018-05-19T05:53:08.434726Z 0 [Warning] InnoDB: New log files created, LSN=45790
    2018-05-19T05:53:08.872448Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
    2018-05-19T05:53:08.954300Z 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 U
    UID: 0fb455fb-6560-11e8-a2f0-000c29c94111.2018-05-19T05:53:08.956569Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
    2018-05-19T05:53:08.958761Z 1 [Note] A temporary password is generated for root@localhost: ?2nt4!-t&s#M

    4 启动数据库

    [root@node21 software]# mysql -uroot -p
    Enter password:

    5 修改密码

    该密码被标记为过期了,如果想正常使用还需要修改密码 

    mysql> show databases;

    ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

    以前的 password()函数将会被抛弃,官方建议使用下面的命令来修改密码 

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

    同时,如果你设置的密码过于简单也会报错。 

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123';

    ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

    6 配置user表

     配置主要是root用户+密码,在任何主机上都能登录MySQL数据库。

    6.1 查看表结构

    mysql>desc user;

    6.2 查询user表

    mysql>select User,Host,Password from user;    #旧版本
    mysql>select User,host,authentication_string from user; #5.7版本以后

    6.3 修改user表,把Host表内容修改为%

    mysql> update user set host='%' where host='localhost';

    6.4 删除root用户的其他host

    mysql> delete from user where host != '%';

    最后结果显示

    6.5 刷新退出

    mysql> flush privileges;
    Query OK, 0 rows affected (0.01 sec)
    mysql> exit;
    Bye

    7 设置开机启动

    [root@node21 mysql]# systemctl enable mysqld
    [root@node21 mysql]# systemctl list-unit-files | grep mysqld
    mysqld.service                                enabled 

    三 mysql故障解析

    1 忘记用户密码

    首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库。 因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的状态下,其他的用户也可以任意地登录和修改MySQL的信息。可以采用将MySQL对 外的端口封闭,并且停止Apache以及所有的用户进程的方法实现服务器的准安全状态。最安全的状态是到服务器的Console上面操作,并且拔掉网线。 

    1.1 vi /etc/my.cnf

    1.2 在[mysqld]中添加   skip-grant-tables 保存退出

    1.3 重启mysql    systemctl restart mysqld

    1.4 .用户无密码登录

    mysql -uroot -p (直接点击回车,密码为空)

    1.5 选择数据库

    mysql> use mysql;

    1.6 修改root密码

    MySQL 5.7 开始 数据库中的user 表中已经将password 字段更改为authentication_string  所以更改密码 直接使用 

    mysql> update user set authentication_string=password('123456') where user='root';

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

    1.7 执行

    mysql> flush privileges ;

    1.8 退出

    mysql>  exit;

    9.删除权限检查

    将刚才在[mysqld]的段中加上的skip-grant-tables删除

    10.重启mysql

     systemctl restart mysqld

    2.ssl_cipher报错

    错误描述:

    添加用户 insert into mysql.user(Host,User,Password) values("localhost","test",password("1234"));

    报以下的错误 ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value错误

    mysql5.1以上版本,我是在5.6版本上操作的。

    错语原因:

    mysql用户表的中某些字段不能为空,没有默认值,其实是操作错误,mysql添加用户是不能这样直接insert user表的。

    解决方法:

    正确的添加用户方法:

    GRANT USAGE ON *.* TO 'user01'@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION;

    用户:user01,密码:123456,这样就添加了一个新的用户,不会出以上的错误了。

    3.添加用户报错

    安装mysql的时候出现这个问题,在增加用户的时候

    The MySQL server is running with the –skip-grant-tables option so it cannot execute this statement

    出现lush privileges 一下就OK了,

    mysql> flush privileges;

    Query OK, 0 rows affected (0.01 sec)

    –skip-grant-tables

    顾名思义,数据库启动的时候 跳跃权限表的限制,不用验证密码,直接登录。

    四 mysql-connector-java与mysql版本的对应关系

    官网文档地址:

    https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-versions.html (Connector/J Versions 5.1)

    https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-versions.html (Connector/J Versions 8.0)

    mysql-connector-java下载地址 :http://central.maven.org/maven2/mysql/mysql-connector-java/

  • 相关阅读:
    html+css动态篇
    html+css定位篇
    首页的css
    display详细说明
    html+css 布局篇
    html+css杂记
    JS与ES的关系
    H5本地存储
    JavaScript面向对象
    JavaScript执行上下文
  • 原文地址:https://www.cnblogs.com/frankdeng/p/9017384.html
Copyright © 2011-2022 走看看