1、检查已安装的mariadb,并强制卸载

    1. [root@localhost ~]# rpm -qa | grep mariadb
    2. mariadb-libs-5.5.52-1.el7.x86_64
    3. [root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64

    2、上传mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz到服务器/usr/local目录
    Centos7Linux安装Mysql5.7 - 图1
    3、添加mysql组和mysql用户

    [root@localhost ~]# groupadd mysql
    [root@localhost ~]# useradd -r -g mysql mysql
    

    -r 参数表示mysql用户是系统用户,不可用于登录系统。
    -g 参数表示把mysql用户添加到mysql用户组中。
    4、解压mysql安装包到指定的目录 /usr/local

    [root@localhost ~]# cd /usr/local //进入目录
    [root@localhost local]# tar -zxvf mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz
    

    Centos7Linux安装Mysql5.7 - 图2
    5、将解压后的目录改名为mysql

    [root@localhost local]# mv mysql-5.7.36-linux-glibc2.12-x86_64 mysql
    

    Centos7Linux安装Mysql5.7 - 图3
    6、更改权限

    [root@localhost local]# chown -R mysql:mysql mysql/
    

    7、创建配置文件vim /etc/my.cnf

    [client]
    # 设置mysql客户端默认字符集
    default-character-set = utf8mb4
    #如果不设置会报错ERROR 2002 (HY000): Can't connect to local MySQL server through socket
    socket=/data/mysql57/data/mysql.sock
    
    [mysqld]
    #设置3306端口
    port=3306
    character-set-server = utf8mb4
    
    # 设置mysql的安装目录
    basedir=/usr/local/mysql
    
    # 设置mysql数据库的数据的存放目录
    datadir=/data/mysql57/data
    socket=/data/mysql57/data/mysql.sock
    
    # 禁用主机名解析
    skip-name-resolve
    
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
    lower_case_table_names=1
    
    # 过小可能会导致写入(导入)数据失败
    max_allowed_packet = 256M
    group_concat_max_len = 10240
    
    # 允许最大连接数
    max_connections=200
    
    # 提到 join 的效率
    join_buffer_size = 16M
    # 事务日志大小
    innodb_log_file_size = 256M
    # 日志缓冲区大小
    innodb_log_buffer_size = 4M
    # 事务在内存中的缓冲
    innodb_log_buffer_size = 3M
    
    [mysqldump]
    # 开启快速导出
    quick
    default-character-set = utf8mb4
    max_allowed_packet = 256M
    

    8、创建目录,改变权限

    #递归创建目录
    [root@localhost local]# mkdir -p /data/mysql57/data
    #更改权限
    [root@localhost local]# chown -R mysql:mysql /data/mysql57/data
    #初始化数据库,记下最后一行的密码(牢记初次登录需要)
    [root@localhost mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql57/data
    

    Centos7Linux安装Mysql5.7 - 图4
    9、启动数据库

    #源目录启动数据库
    [root@localhost mysql]# /usr/local/mysql/support-files/mysql.server start
    Starting MySQL.Logging to '/data/mysql57/data/localhost.localdomain.err'.
    SUCCESS!
    

    10、设置自动启动mysql

    # 复制启动脚本到资源目录
    [root@localhost mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
    # 增加mysqld服务控制脚本执行权限
    [root@localhost mysql]# chmod +x /etc/rc.d/init.d/mysqld
    #将mysqld添加到系统服务,并检查是否生效
    [root@localhost mysql]# chkconfig --add mysqld
    [root@localhost mysql]# chkconfig --list mysqld
    注意:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。如果您想列出 systemd 服务,请执行 'systemctl list-unit-files'。欲查看对特定 target 启用的服务请执行'systemctl list-dependencies [target]'。
    mysqld 0:关1:关2:开3:开4:开5:开6:关
    

    数字代表运行级别0:关机1:单用户模式2:无网络连接的多用户命令行模式3:有网络连接的多用户命令行模式4:保留级别5:带图形界面的多用户模式6:重新启动

    #启动服务
    [root@localhost mysql]# service mysqld start
    Starting MySQL. SUCCESS!
    #可以使用以下命令启动/停止/重启mysqld服务
    service mysqld start/stop/restart
    

    11、登录mysql,修改初始密码和远程登录权限

    # 建立一个链接文件。因为系统默认会查找/usr/bin下的命令。
    ln -s /usr/local/mysql/bin/mysql /usr/bin
    #以root用户登录,输入系统产生的随机密码
    [root@localhost mysql]# mysql -uroot -p
    Enter password:
    #登录以后,修改用户密码
    mysql> set password for root@localhost=password("用户新密码");
    #设置root远程登录
    mysql> GRANT ALL PRIVILEGES ON *.* TO'root'@'%' IDENTIFIED BY '用户密码' WITH GRANT OPTION;
    Query OK, 0 rows affected, 1 warning (0.00 sec)
    #更新权限
    mysql> FLUSH PRIVILEGES;
    Query OK, 0 rows affected (0.00 sec)
    

    如果报错:
    681dc4a2ca28cf1728a27dbd05e38d3.png

    553e8e56d83120815656081c3e8332b.png
    方法1:
    联网状态或者有yum源可以直接安装缺失的包文件:

    yum install libncurses* -y
    

    在离线状态或者没有yum源的状态下可使用如下方法:
    方法2:
    Centos7Linux安装Mysql5.7 - 图7

    使用root用户:
    cp /lib64/libncurses.so.6 /lib64/libncurses.so.5
    或者软连接
    ln -s /lib64/libncurses.so.6 /lib64/libncurses.so.5
    

    Centos7Linux安装Mysql5.7 - 图8

    使用root用户:
    cp /lib64/libtinfo.so.6 /lib64/libtinfo.so.5
    或者软连接
    ln -s /lib64/libtinfo.so.6 /lib64/libtinfo.so.5
    

    12、防火墙的设置

    mysql> exit; //退出mysql
    #为firewalld添加开放mysql3306端口
    [root@localhost /]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
    [root@localhost /]# firewall-cmd --reload //重启防火墙,上面开启的端口生效
    #也可以使用关闭/开启防火墙
    [root@localhost /]# systemctl stop/start firewalld.service //关闭防火墙