Centos7安装mysql

Centos7安装mysql

一、卸载mariadb

1. 查看mariadb的相关包

rpm -qa | grep mariadb

2. 卸载mariadb

rpm -e --nodeps

二、完全卸载mysql

1. 查看mysql安装情况

rpm -qa |grep -i mysql

image-20201209084505483

2. 若有则先卸载

yum remove mysql80-community-release-el7-1.noarch

image-20201209085439655

3. 查看是否卸载完全

image-20201209090142119

4. 查看mysql相关目录

whereis mysql

image-20201209101044032

find / -name mysql

image-20201209101509255

5. 删除相关目录

rm -rf 

6. 删除/etc/my.cnf

rm -rf /etc/my.cnf

7. 删除/var/log/mysqld.log(如果不删除这个文件,会导致新安装的mysql无法生存新密码,导致无法登陆)

rm -rf /var/log/mysqld.log

三、安装mysql

1. 下载安装文件

官网下载地址:https://downloads.mysql.com/archives/community/

​ 下载文件:mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz

image-20201209103016710

2. 文件解压缩

若是云服务器,把文件通过Xftp软件上传到服务器上,放于/usr/local/mysql文件夹中

image-20201209103333801

第一步,使用xz -d 命令将xxx.tar.xz压缩包解压成xxx.tar,如下:

xz -d mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz

image-20201209103452199

第二步,使用tar -vxf命令将xxx.tar压缩包解压,如下:

tar -xvf mysql-8.0.16-linux-glibc2.12-x86_64.tar

image-20201209103530551

3. 给包重命名为mysql

mv mysql-8.0.16-linux-glibc2.12-x86_64 /usr/local/mysql/mysql

4. 检查mysql组和用户是否存在,如无创建

创建mysql用户组:

groupadd mysql
useradd -g mysql mysql

5. 进入mysql目录并创建data目录;

cd /usr/local/mysql
mkdir data

6. 赋权限给相关目录

chmod -R 777 /usr/local/mysql/mysql
chmod -R 777 /usr/local/mysql/data

image-20201209104356162

7. 将mysql目录的权限授给mysql用户和mysql组;

chown -R mysql:mysql /usr/local/mysql/mysql

image-20201209104603358

8. 新建mysql配置文件 my.cnf

vi /etc/my.cnf

image-20201209104629711

​ 配置内容如下:

[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql/mysql  # mysql安装目录
datadir=/usr/local/mysql/data  # 数据存放目录
socket=/tmp/mysql.sock
log-error=/usr/local/mysql/data/mysql.err
pid-file=/usr/local/mysql/data/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true

​ 配置好文件,附文件权限:

  • 特别注意,这个是所有用户都可读写,由于mysql的安全机制,这种权限可能会被忽视掉,导致配置文件my.cnf不生效
chmod -R 777 /etc/my.cnf
  • 建议用这个,用户可读写,其他用户不可写.
chmod 644 /etc/my.cnf

image-20201209105236917

9. 安装mysql

  • 进入mysql 安装目录下的bin目录:
cd /usr/local/mysql/mysql/bin/

image-20201209105404816

  • 安装MySQL,并记住随机生成的密码,每次生成都不一样:
./mysqld --initialize --console

image-20201209105648013

10. 启动mysql

  • 进入/usr/local/mysql/mysql/support-files/目录
cd /usr/local/mysql/mysql/support-files/

image-20201209110107046

  • 启动mysql

    ./mysql.server start
    

可能会出现一下报错:

报错:Starting MySQL.Logging to '/usr/local/mysql/data/VM-0-16-centos.err'.
..... ERROR! The server quit without updating PID file (/usr/local/mysql/data/VM-0-16-centos.pid).

image-20201209110125950

解决方法:

① 先查看报错文件

image-20201209110942151

发现问题出现在/tmp/mysql.sock文件

② 检查文件mysql.sock是否在/tmp/目录下

image-20201209111314209

检查该路径发现tmp路径属于root

③ 将该路径分配给mysql用户重启mysql,问题解决

chown -R mysql.mysql /tmp/

image-20201209112110424

image-20201209111444340

④ 其他情况:

若报错文件有如下报错,可能是因为没给文件赋权限

image-20201209111710774

执行

chmod -R 777 /usr/local/mysql/data/
  • 重新启动

    image-20201209112140382

11. 配置

  • 配置环境变量
cp mysql.server  /etc/init.d/mysqld

image-20201209112707676

  • 创建软连接(实现可直接命令行执行mysql)
ln -s /usr/local/mysql/mysql/bin/mysql /usr/bin

image-20201209113017823

12.登录mysql

  • 登录mysql,密码用上面安装mysql时的默认密码

    mysql -uroot -p
    

    image-20201209113354905

  • 修改默认密码

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'lcd123456';
    

    image-20201209113436381

  • 修改成远程登录用户

    update user set host='%' where user = 'root';
    

    image-20201209113518569

  • 授权

    grant all privileges on *.* to 'root'@'%';
    

    image-20201209113846367

  • 刷新权限

    flush privileges
    

    image-20201209114016122

  • 使用native校验登录(可以使用Navicat for mysql等工具登录)

    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'lcd123456';
    

    image-20201209114100094

13.防火墙设置

  • 查看防火墙状态

    firewall-cmd --state
    

​ 若没有,则开启

systemctl start firewalld.service
  • 查看监听的端口

    firewall-cmd --list-port
    
  • 添加3306端口监听

    firewall-cmd --zone=public --add-port=3306/tcp --permanent
    
  • 刷新防火墙设置

    firewall-cmd --reload
    

image-20201209114458024

至此,完成安装。

14. 加入开机启动

chkconfig --add mysqld
chkconfig mysqld on

四、执行 sql 文件

命令行下执行 sql 文件有两种方法

1. 第一种方法(未连接数据库)

不推荐这样使用 因为在密码带有特殊字符时会报错

mysql -h localhost -u username -ppassword < filepath #filepath 为绝对路径

2.第二种方法(已连接数据库)

这里的 yourDatabase 为你的数据库名 filepath 为 sql 文件的绝对路径

  • 创建数据库

    CREATE DATABASE IF NOT EXISTS yourDatabaseName DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
    
  • 执行sql文件

    use yourDatabase;
    source filepath;
    

3. 第三种方法-连接Navicat

image-20201209115443556

至此,结束!

参考文章:

原文地址:https://www.cnblogs.com/arlenlin/p/14107783.html