非源码安装 :centos 7 安装 mysql 5.7 (个别人可能会有问题)

wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

yum -y install mysql57-community-release-el7-8.noarch.rpm

安装 mysql服务
yum -y install mysql-community-server
#启动数据库服务, systemctl 该命令可⽤于查看系统状态和管理系统及服务,centos7上开始使⽤
systemctl start mysqld.service
#查看状态
systemctl status mysqld.service
#在⽇志⽂件中查看初始密码
grep “password” /var/log/mysqld.log
#进⼊修改Mysql密码
mysql -uroot -p
#新密码设置必须由⼤⼩写字⺟、数字和特殊符号组成
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘Qq1314520…’;
#开启mysql的远程访问, %是指全部
grant all privileges on . to ‘root’@’%’ identified by ‘Qq1314520…’ with
grant option;
#刷新权限

flush privileges;

若第一次进不去,https://cloud.tencent.com/developer/article/1383915

源码安装方式

下载MySQL 5.7的安装包。地址:https://dev.mysql.com/downloads/
2.打开网址,如图所示:
小安装 - 图1
3.看到如图所示界面,点击切换自己需要的版本。
小安装 - 图2
小安装 - 图3
4.当我们点击Archives之后,看到如下所示,也可以找到我们需要的版本。
小安装 - 图4
找到下图所示MySQL-5.7.35.tar.gz的压缩包。下载到电脑上。

还需要下载另一个,MySQL 5.7 编译安装需要boost 库,这里官网下载含boost的源码包
小安装 - 图5

第一步:检查
注意:安装新版MySQL之前,我们需要将CentOS操作系统自带的数据库mariadb-lib卸载
小安装 - 图6
大家一定要看清楚自己的版本号,这里经常犯的错误就是没写对报错。

第二步:安装MySQL所需要的工具
yum install \vim \git \gcc \gcc-c++ \wget \make \cmake \automake \autoconf \libaio \libtool \net-tools \bison \bison-devel \libaio-devel \ncurses-devel \openssl openssl-devel (centos7,默认没装,需要装)经常有人报错就是环境没装好。perl-Data-Dumper -y

  • 关闭selinux,关闭防火墙:

systemctl stop firewalld.service
vi /etc/selinux/config
SELINUX=disabled

  • 创建路径:

mkdir -p /usr/local/mysql
mkdir -p /data/mydata

  • 创建mysql用户

useradd -M -s /sbin/nologin mysql

  • 解压mysql和mysql-boost源码包,并进入解压后的路径

    1. cd mysql-5.7.17 <br />cmake \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_DATADIR=/data/mydata \-DSYSCONFDIR=/etc \-DWITH_BOOST=/usr/local/software/mysql-5.7.35/boost \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_unicode_ci \-DEXTRA_CHARSETS=all \-DENABLED_LOCAL_INFILE=1 \-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \-DMYSQL_TCP_PORT=3306
    参数详细信息解释: 
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #指定mysql数据库安装目录 
    -DMYSQL_DATADIR=/data/mydata \ #指定数据库文件路径 
    -DSYSCONFDIR=/etc \ #指定配置文件目录 
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \ #安装INNOBASE存储引擎 
    -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ #安装ARCHIVE存储引擎 
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ #安装BLACKHOLE存储引擎 
    -DWITH_READLINE=1 \ #使用readline功能 
    -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ #连接文件位置 
    -DWITH_SSL=system \ #表示使用系统上的自带的SSL库 
    -DWITH_ZLIB=system \ #表示使用系统上的自带的ZLIB库 
    -DDEFAULT_CHARSET=utf8 \ #指定默认使用的字符集编码 
    -DDEFAULT_COLLATION=utf8_general_ci \ #指定默认使用的字符集校对规则 
    -DDOWNLOAD_BOOST=1 \ 
    -DWITH_BOOST=../boost_1_59_0 \ #指定Boost库的位置,mysql5.7必须添加该参数 
    -DENABLE_DOWNLOADS=1 #支持下载可选文件
    
  • 编译并安装

make && make install

  • 初始化mysql:

/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --
datadir=/data/mydata --socket=/tmp/mysql.sock

  • 对mysql的相关路径进行更改权限

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

  • 修改配置文件 ```java vi /etc/my.cnf

[mysqld] datadir=/data/mydata socket=/tmp/mysql.sock symbolic-links=0

[mysqld_safe] log-error=/usr/local/mysql/log/mysql.errlog pid-file=/data/mydata/$hostname.pid



- 启停mysql: 
```java
[root@localhost support-files]# ./mysql.server start 
Starting MySQL.2019-08-03T14:19:37.028727Z mysqld_safe error: log-error set to 
'/usr/local/mysql/log/mysql.errlog', however file don't exists. Create writable for user 
'mysql'. 
ERROR! The server quit without updating PID file 
(/data/mydata/localhost.localdomain.pid). 
解决: 

touch /usr/local/mysql/log/mysql.errlog 
chown -R mysql:mysql /usr/local/mysql/log/mysql.errlog 
启动: 
/usr/local/mysql/support-files/mysql.server start 
关闭: 
/usr/local/mysql/support-files/mysql.server stop
  • 登录mysql:

    • 看一下初始密码grep “password” /var/log/mysqld.log
    • 如果上面一步没找到的话,还可以这样
      • vi /etc/my.cnf
        • 在[mysqld]下添加skip-grant-tables,保存即可。
        • ①重启mysql:
          • /usr/local/mysql/support-files/mysql.server stop
          • /usr/local/mysql/support-files/mysql.server start
        • ②进入mysql,登录
          mysql -u root -p
          不用输入密码,直接回车(出现Enter Password 也一样直接回车,即可登陆成功)
        • ③输入use mysql,修改root的密码:
          update user set authentication_string=password(‘新密码’) where user=’root’;
          flush privileges;
        • ④退出:

quit;

     - ⑤再次重启mysql:
        - /usr/local/mysql/support-files/mysql.server stop 
        - /usr/local/mysql/support-files/mysql.server start 
     - 登录
        - /usr/local/mysql/bin/mysql -uroot -p
use mysql



drop table if exists mysql.servers; 
CREATE TABLE `servers` ( 
`Server_name` char(64) NOT NULL, 
`Host` char(64) NOT NULL,`Db` char(64) NOT NULL, 
`Username` char(64) NOT NULL, 
`Password` char(64) NOT NULL, 
`Port` int(4) DEFAULT NULL, 
`Socket` char(64) DEFAULT NULL, 
`Wrapper` char(64) NOT NULL, 
`Owner` char(64) NOT NULL, 
PRIMARY KEY (`Server_name`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='MySQL Foreign Servers table';
  • 添加MySQL服务并设置mysql开机启动: ```java cp -a /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql chkconfig —add mysql

chkconfig —list mysql mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off

chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息 等级0表示:表示关机 等级1表示:单用户模式 等级2表示:无网络连接的多用户命令行模式 等级3表示:有网络连接的多用户命令行模式 等级4表示:不可用 等级5表示:带图形界面的多用户模式 等级6表示:重新启动

使用mysql服务的方式操作启停mysql服务: service mysql start #启动mysql服务器 service mysql stop #关闭mysql服务器 service mysql restart #重启mysql服务器


- 设置mysql环境变量
```java
ln -s /usr/local/mysql/bin/* /usr/sbin/
  • 成功使用 mysql -uroot -p 登录服务器