目录
1.rpm包安装
1.1下载对应的安装包
下载地址:https://downloads.mysql.com/archives/community/
1.2上传到你的安装好的Centos7系统上
这里可以通过Xshell 自带的XFTP进行上传,或者可以通过安装lrzsz包,通过rz命令上传
解压文件
tar -xvf
这里的一一解释下
mysql-community-server-5.7.29-1.el7.x86_64.rpm --》服务器端的包,提供mysql服务器端程序
mysql-community-client-5.7.29-1.el7.x86_64.rpm --》提供mysql客户端命令的包
mysql-community-libs-5.7.29-1.el7.x86_64.rpm --》mysql的相关的库
mysql-community-libs-compat-5.7.29-1.el7.x86_64.rpm --》与某些软件兼容的库
mysql-community-test-5.7.29-1.el7.x86_64.rpm --》mysql 测试相关的软件
mysql-community-common-5.7.29-1.el7.x86_64.rpm --》mysql相关的公共的软件
mysql-community-devel-5.7.29-1.el7.x86_64.rpm --》与mysql开发相关的库的软件 development 开发
mysql-community-embedded-5.7.29-1.el7.x86_64.rpm --》与嵌入式相关的软件
mysql-community-embedded-devel-5.7.29-1.el7.x86_64.rpm
mysql-community-embedded-compat-5.7.29-1.el7.x86_64.rpm
1.3开始安装
这里’ * '代表通配符
[root@localhost ~]#yum install mysql-community-* -y
1.4.启动MySQL
这里要注意的是:
systemctl start mysqld 和service mysqld start 效果一样
service mysqld start --》centos6 的用法--》老式用法
systemctl start mysqld --》centos7和8里的新式用法
mysqld 是MySQL的进程的名字 mysql daemon mysql的守护进程
守护进程: 一直在内存里运行,默认情况下不退出,直到人为的停止。
只要是对外提供服务的进程都是守护进程
例如mkdir 命令就不是守护进程,这个命令一旦执行成功就会退出
1.5.如何知道mysql是否启动成功?
1.查看进程
2.查看端口
netstat 是linux里查看本机开放了哪些网络端口的命令
若系统没有netstat命令可用下面命令安装
yum install net-tools -y 安装net-tools工具
命令
netstat -anpult
-a 查看所有的信息 all
-n 以数字的形式显示 number
-p 显示程序的名字program name 1969/mysqld 1969是mysqld进程的pid号
-u 显示所有udp端口
-t 显示所有tcp端口
-l 显示监听端口 LISTEN 显示守护进程监听的端口
0.0.0.0:22 0.0.0.0 代表本机的任意ip地址 22 表示开发的端口
也可以使用lsof命令查看
lsof -i:3306
1.6.登录进入MySQL
mysql是一个客户端的命令,用来登录mysql使用的
-u 指定登录用户 user
-p 指定密码 password
root 这个root不是我们linux系统里的root是MySQL软件里的超级用户,碰巧和linux系统里的超级用户同名
这里第一次登陆的时候肯定不知道密码是什么,这时候我们可以通过查看mysql临时密码
临时密码是MySQL在第一次启动的时候,临时产生的,为了安全性考虑,存放在MySQL的日志文件里 /var/log/mysqld.log,这里我们试着访问这个日志,这时就可以看到临时密码了
命令
handlebars cat /var/log/mysqld.log | grep temp
此时我们使用这个密码登录,发现登陆成功
1.7.修改密码
第一次登录进入MySQL必须修改临时密码,使用ALTER USER语句去修改
命令
alter user root@localhost identified by 'Hpx123456#';
修改成功
此时试着退出登录,发现成功修改密码
若需要windows上远程访问MySQL数据库,可参考以下链接,不过这里我关闭了防火墙,所以就不用配置防火墙了
sudo systemctl stop firewalld 临时关闭
sudo systemctl disable firewalld ,然后reboot 永久关闭
sudo systemctl status firewalld 查看防火墙状态。
这里远程链接的问题,可以参考下面链接
https://blog.csdn.net/jiajinlei/article/details/84142186
2.编译安装方式
这里编译的前提是你先去官网将源码包下载好上传到你的服务器之后开始安装的步骤
我这里的包是 mysql-community-5.7.29-1.el7.src.rpm
源码安装的步骤
* 安装解决软件依赖关系的包
yum install cmake ncurses-devel gcc gcc-c++ vim lsof bzip2 openssl-devel -y
* 解压src的rpm包
rpm -ivh mysql-community-5.7.29-1.el7.src.rpm
* 进入/root/rpmbuild目录
cd /root/rpmbuild/SOURCES
* 新建用户
useradd -r -s /sbin/nologin mysql
* 新建数据目录
mkdir -p /data/mysql
* 修改数据目录的拥有者为mysql
chown mysql:mysql /data/mysql
* 解压真正的源码包
tar xf mysql-5.7.29.tar.gz
tar xf boost_1_59_0.tar.bz2
* 将boost包移动到mysql解压的包里
mv boost_1_59_0 mysql-5.7.29
* 进入解压后的目录 /root/rpmbuild/SOURCES/mysql-5.7.29
cd mysql-5.7.29
* 编译前的配置 生成一个makefile文件 编译时候根据这个文件进行编译
/root/rpmbuild/SOURCES/mysql-5.7.29 这个文件里面进行配置
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/sc_mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc -DMYSQL_USER=mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=boost_1_59_0
(* cmake 是一个编译器,就是将c语言编写的代码翻译成机器可以执行的二进制的程序
* -DCMAKE_INSTALL_PREFIX=/usr/local/mysql 指定生成的makefile文件和MySQL安装的路径/usr/local/mysql,将makefile文件安装到该目录
* -DMYSQL_DATADIR=/data/mysql 指定MySQL的存放数据的目录
* -DSYSCONFDIR=/etc 指定MySQL的配置文件存放的目录
* -DMYSQL_USER=mysql --》指定启动mysql的用户
* -DDEFAULT_CHARSET=utf8指定MySQL里的默认的字符集推荐指定默认的字符集为utf8
* -DDEFAULT_COLLATION=utf8_general_ci COLLATION 排序规则 utf8_general_ci utf8里的排序规则,不区分大小写
* -DWITH_BOOST=boost_1_59_0 指定boost源码的位置,在mysql源码的当前目录下一个叫boost_1_59_0的文件夹)
* 编译,启动2个进程去编译,加快速度 /root/rpmbuild/SOURCES/mysql-5.7.29 进行编译
make -j 2
*安装编译好的二进制文件到指定的目录->复制当前目录下编译好的二进制文件到当时指定的目录
/root/rpmbuild/SOURCES/mysql-5.7.29 目录中进行安装
make install
* 备份原来的my.cnf配置文件
cp /etc/my.cnf /root/mysql.cnf.bak
* 清空这个文件,这个文件是mariadb的配置文件,不是mysql的
>/etc/my.cnf
* 初始化操作
cd /usr/local/sc_mysql/bin 进入这个目录
./mysqld --initialize --user=mysql --basedir=/usr/local/sc_mysql/ --datadir=/data/mysql &>/root/temp_password.txt
* 修改PATH变量,在linux系统里可以找到我们编译安装的mysql相关的命令 永久修改变量
echo "PATH=$PATH:/usr/local/sc_mysql/bin" >>/etc/bashrc
* 拷贝mysqld的程序文件到指定目录 方面以后的启动start stop
在/usr/local/sc_mysql/bin 文件中进行操作
cp ../support-files/mysql.server /etc/init.d/mysqld
* 设置Mysql开机启动
chkconfig mysqld on
* 启动mysql
service mysqld start
这里因为步骤较多,需要借助一个shell脚本来实现
#!/bin/bash
#author:II Sole
#time: 2020-5-12
#编译安装mysql 5.7.29
#OS:CentOS Linux release 7.8.2003
##############################
#前提: mysql的源码包已经上传到linux服务器了
#安装解决软件依赖关系的包
yum install cmake ncurses-devel gcc gcc-c++ vim lsof bzip2 openssl-devel -y
#解压src的rpm包
rpm -ivh mysql-community-5.7.29-1.el7.src.rpm
#进入/root/rpmbuild/
cd /root/rpmbuild/SOURCES
#新建用户
useradd -r -s /sbin/nologin mysql
#新建数据目录
mkdir -p /data/mysql
#修改目录拥有者为mysql
chown mysql:mysql /data/mysql
#解压真正的源码包
tar xf mysql-5.7.29.tar.gz
tar xf boost_1_59_0.tar.bz2
#将boost包移动到mysql解压的包里
mv boost_1_59_0 mysql-5.7.29
#进入解压后的目录 /root/rpmbuild/SOURCES/mysql-5.7.29
cd mysql-5.7.29
#编译前的配置 生成一个makefile文件 编译时候根据这个文件进行编译
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/sc_mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc -DMYSQL_USER=mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=boost_1_59_0
# -DCMAKE_INSTALL_PREFIX mysql指定的安装路径
#-DMYSQL_DATADIR mysql 数据存放位置
#-DSYSCONFDIR 配置文件存放位置
#-DMYSQL_USER 指定启动mysql的用户
#-DDEFAULT_CHARSET 默认字符集
#-DDEFAULT_COLLATION 默认排序方式
#-DWITH_BOOST 指定boost源码的位置
# 编译,启动2个进程去编译,加快速度 /root/rpmbuild/SOURCES/mysql-5.7.29 进行编译
make -j 2
#安装编译好的二进制文件到指定的目录 /root/rpmbuild/SOURCES/mysql-5.7.29 目录中进行安装
make install
#备份原来的my.cnf配置文件
cp /etc/my.cnf /root/mysql.cnf.bak
#清空这个文件,这个文件是mariadb的配置文件,不是mysql的
>/etc/my.cnf
#初始化操作
cd /usr/local/sc_mysql/bin
./mysqld --initialize --user=mysql --basedir=/usr/local/sc_mysql/ --datadir=/data/mysql &>/root/temp_password.txt
#修改PATH变量,在linux系统里可以找到我们编译安装的mysql相关的命令 永久修改变量
echo "PATH=$PATH:/usr/local/sc_mysql/bin" >>/etc/bashrc
#拷贝mysqld的程序文件到指定目录 方面以后的启动start stop
cp ../support-files/mysql.server /etc/init.d/mysqld
#关闭防火墙和seliunx
systemctl stop firewalld
systemctl disable firewalld
#设置Mysql开机启动
chkconfig mysqld on
#启动mysql
service mysqld start
``
保存为.sh文件 ,输入bash +脚本名,等待执行成功就好了