Linux下mysql5.7安装

MySQL数据库安装配置
    1、检查是否已经安装MySQL,执行命令
        rpm -qa | grep mysql

    2、删除已经安装的mysql
        rpm -e --nodeps 
        rpm -e --nodeps 
        rpm -e --nodeps 

    3、再次执行查询命令,查看是否删除
        rpm -qa | grep mysql

    4、查询mysql对应的文件夹
        whereis mysql
        find / -name mysql

    5、删除相关目录或文件
        rm -rf /usr/bin/mysql /usr/include/mysql /data/mysql /data/mysql/mysql 

    6、验证是否删除完毕
        whereis mysql
        find / -name mysql

    7、检查mysql用户组和用户是否存在,如果没有,则创建
        cat /etc/group | grep mysql
        cat /etc/passwd | grep mysql
        groupadd mysql
        useradd -r -g mysql mysql

    8、yum方式安装MySQL5.7
        (1)下载并安装MySQL官方的 Yum Repository
            1)下载并上传
            https://dev.mysql.com/downloads/repo/yum/
            mysql80-community-release-el7-3.noarch.rpm

            2)安装rpm
                # rpm -ivh mysql80-community-release-el7-3.noarch.rpm

            3)查看MySQL版本
                默认是mysql8.0版本
                # yum list|grep mysql

            4)修改安装MySQL版本
                更改安装版本
                # vim /etc/yum.repos.d/mysql-community.repo
                把8.0的enabled=1 改为enabled=0
                把需要安装的版本enabled=0 改为enabled=1
                再查看安装版本
                # yum list | grep mysql

扫描二维码关注公众号,回复: 8721711 查看本文章

            5)安装MySQL
                yum install mysql

// 这里说明一下
/**
我本来有mysql5.6
MySQL-server-5.6.37-1.el7.x86_64
MySQL-devel-5.6.37-1.el7.x86_64
MySQL-shared-5.6.37-1.el6.x86_64
MySQL-client-5.6.37-1.el7.x86_64
*/
// 可是要求是mysql5.7
/**
于是乎又下载的
mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
可是安装出了很多错误
跟一运维老哥说了这情况,他说这是二进制版本
安装起来有些麻烦,并让我yum安装
*/
// 然后呐,用yum安装的,也花了很大一部分时间,幸运的是,成功了

// PS: 二进制版本安装有一哥们写的不错,访问量3W+
// 但是这是后来发现的,所以就没去尝试
// 链接贴这了
https://blog.csdn.net/z13615480737/article/details/80019881

            6)查看是否安装成功
                # rpm -qa | grep mysql
                mysql-community-common-5.7.28-1.el7.x86_64
                mysql-community-libs-5.7.28-1.el7.x86_64
                mysql80-community-release-el7-3.noarch
                mysql-community-server-5.7.28-1.el7.x86_64
                mysql-community-client-5.7.28-1.el7.x86_64


       (2)MySQL数据库设置
            首先启动MySQL
            # systemctl start  mysqld.service
            查看MySQL运行状态
            # systemctl status mysqld.service

        (3)此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,
            通过如下命令可以在日志文件中找出密码:
            # grep "password" /var/log/mysqld.log
            6o/Q85u/cz4_

        (4)如下命令进入数据库:
            # mysql -uroot -p
            输入初始密码,此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库:
            mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '在此输入新密码';
            这里有个问题,新密码设置的时候如果设置的过于简单会报错:
            mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
            ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

            原因是因为MySQL有密码设置的规范,具体是与validate_password_policy的值有关:
            MySQL完整的初始密码规则可以通过如下命令查看:
            mysql> SHOW VARIABLES LIKE 'validate_password%';
            可能查看不了
            mysql> SHOW VARIABLES LIKE 'validate_password%';
            ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

            看它意思是要重新设置密码
            mysql> SET PASSWORD = PASSWORD('123456');
            ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
            
            虽然继续报错,但是没关系
            mysql> set global validate_password_policy=0;
            Query OK, 0 rows affected (0.01 sec)

            mysql> 
            mysql> set global validate_password_length=1;
            Query OK, 0 rows affected (0.00 sec)

            mysql> 
            mysql> SET PASSWORD = PASSWORD('toor');
            Query OK, 0 rows affected, 1 warning (0.00 sec)

            到这成功了!

            退出以后重新登录
            # mysql -uroot -p
            Enter password: 
            Welcome to the MySQL monitor.  Commands end with ; or \g.
            Your MySQL connection id is 3
            Server version: 5.7.28 MySQL Community Server (GPL)

            Copyright (c) 2000, 2019, 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> SHOW VARIABLES LIKE 'validate_password%';
            +--------------------------------------+-------+
            | Variable_name                        | Value |
            +--------------------------------------+-------+
            | validate_password_check_user_name    | OFF   |
            | validate_password_dictionary_file    |       |
            | validate_password_length             | 4     |
            | validate_password_mixed_case_count   | 1     |
            | validate_password_number_count       | 1     |
            | validate_password_policy             | LOW   |
            | validate_password_special_char_count | 1     |
            +--------------------------------------+-------+
            7 rows in set (0.00 sec)

            # MySQL完整的初始密码规则已经通过如上命令查看出来


        (5)Linux下允许MySQL 授权远程连接
            1)登录mysql数据库
                mysql -u root -p   (root)用户名

            2)创建用户用来远程连接
                mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
                (root表示用户名,%表示所有的电脑都可以连接,也可以设置某个ip地址运行连接,root表示密码)

            3)执行 flush privileges;命令立即生效
                mysql> flush privileges;

            4)如果此时还无法连接,检测配置文件(/etc/mysql/mysql.conf.d/mysqld.cnf) 
                cat /etc/mysql/mysql.conf.d/mysqld.cnf
                vim /etc/mysql/mysql.conf.d/mysqld.cnf

                    bind-address配置是否开启,应该是关闭

                    #bind-address = 127.0.0.1 注释掉;
                    key_buffer_size = 16M
                    max_allowed_packet = 16M
                    thread_stack = 192K
                    thread_cache_size = 8

            5)重启mysql并查看状态
                systemctl stop mysqld
                systemctl status mysqld
                systemctl start mysqld
                systemctl status mysqld

            6)然后再本地远程linux下mysql数据库

                C:\Users\admin>mysql -h 192.168.2.6 -u root -p
                Enter password: ****
                Welcome to the MySQL monitor.  Commands end with ; or \g.
                Your MySQL connection id is 11
                Server version: 5.7.28 MySQL Community Server (GPL)

                Copyright (c) 2000, 2015, 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> show databases;
                +--------------------+
                | Database           |
                +--------------------+
                | information_schema |
                | mysql              |
                | performance_schema |
                | sys                |
                +--------------------+
                4 rows in set (0.00 sec)


           7)查看linux下mysql安装目录
                mysql> show variables like '%dir%';
                +-----------------------------------------+----------------------------+
                | Variable_name                           | Value                      |
                +-----------------------------------------+----------------------------+
                | basedir                                 | /usr/                      |
                | binlog_direct_non_transactional_updates | OFF                        |
                | character_sets_dir                      | /usr/share/mysql/charsets/ |
                | datadir                                 | /var/lib/mysql/            |
                | ignore_db_dirs                          |                            |
                | innodb_data_home_dir                    |                            |
                | innodb_log_group_home_dir               | ./                         |
                | innodb_max_dirty_pages_pct              | 75.000000                  |
                | innodb_max_dirty_pages_pct_lwm          | 0.000000                   |
                | innodb_tmpdir                           |                            |
                | innodb_undo_directory                   | ./                         |
                | lc_messages_dir                         | /usr/share/mysql/          |
                | plugin_dir                              | /usr/lib64/mysql/plugin/   |
                | slave_load_tmpdir                       | /tmp                       |
                | tmpdir                                  | /tmp                       |
                +-----------------------------------------+----------------------------+
                15 rows in set (0.00 sec)

            8)查询数据库的用户
                mysql> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
                +------------------------------------+
                | query                              |
                +------------------------------------+
                | User: 'root'@'%';                  |
                | User: 'mysql.session'@'localhost'; |
                | User: 'mysql.sys'@'localhost';     |
                | User: 'root'@'localhost';          |
                +------------------------------------+
                4 rows in set (0.01 sec)

            9)查看MySQL数据库状态,关闭mysqld服务

            [root@ha156_master ~]# systemctl status mysqld
            ● mysqld.service - MySQL Server
               Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
               Active: active (running) since 三 2019-11-20 15:59:06 CST; 28min ago
                 Docs: man:mysqld(8)
                       http://dev.mysql.com/doc/refman/en/using-systemd.html
              Process: 19504 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
              Process: 19480 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
             Main PID: 19507 (mysqld)
                Tasks: 30
               CGroup: /system.slice/mysqld.service
                       └─19507 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid

            11月 20 15:59:04 ha156_master systemd[1]: Starting MySQL Server...
            11月 20 15:59:06 ha156_master systemd[1]: Started MySQL Server.
            [root@ha156_master ~]# 
            [root@ha156_master ~]# systemctl stop mysqld
            [root@ha156_master ~]# 
            [root@ha156_master ~]# systemctl status mysqld
            ● mysqld.service - MySQL Server
               Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
               Active: inactive (dead) since 三 2019-11-20 16:27:45 CST; 3s ago
                 Docs: man:mysqld(8)
                       http://dev.mysql.com/doc/refman/en/using-systemd.html
              Process: 19504 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
              Process: 19480 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
             Main PID: 19507 (code=exited, status=0/SUCCESS)

            11月 20 15:59:04 ha156_master systemd[1]: Starting MySQL Server...
            11月 20 15:59:06 ha156_master systemd[1]: Started MySQL Server.
            11月 20 16:27:41 ha156_master systemd[1]: Stopping MySQL Server...
            11月 20 16:27:45 ha156_master systemd[1]: Stopped MySQL Server.
            [root@ha156_master ~]#            
 

创作不易,您的每一次点赞是我创作最大的动力!

发布了149 篇原创文章 · 获赞 37 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/frdevolcqzyxynjds/article/details/103165742