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/

  • 相关阅读:
    python Database Poll for SQL SERVER
    SQLAlchemy表操作和增删改查
    flask动态url规则
    flask配置管理
    一个Flask运行分析
    Function Set in OPEN CASCADE
    Happy New Year 2016
    Apply Newton Method to Find Extrema in OPEN CASCADE
    OPEN CASCADE Multiple Variable Function
    OPEN CASCADE Gauss Least Square
  • 原文地址:https://www.cnblogs.com/frankdeng/p/9017384.html
Copyright © 2011-2022 走看看