- 非源码安装 :centos 7 安装 mysql 5.7 (个别人可能会有问题)
- 安装 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;
#刷新权限 - 源码安装方式
非源码安装 :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.打开网址,如图所示:
3.看到如图所示界面,点击切换自己需要的版本。
4.当我们点击Archives之后,看到如下所示,也可以找到我们需要的版本。
找到下图所示MySQL-5.7.35.tar.gz的压缩包。下载到电脑上。
还需要下载另一个,MySQL 5.7 编译安装需要boost 库,这里官网下载含boost的源码包
第一步:检查
注意:安装新版MySQL之前,我们需要将CentOS操作系统自带的数据库mariadb-lib卸载
大家一定要看清楚自己的版本号,这里经常犯的错误就是没写对报错。
第二步:安装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源码包,并进入解压后的路径
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; - ④退出:
- vi /etc/my.cnf
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 登录服务器