yum安装
1.关闭文件防火墙和防火墙
sed -ri s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config #关闭文件防火墙
systemctl stop firewalld && systemctl disable firewalld #关闭防火墙并设置为开机自关闭
2.安装软件包
yum -y groupinstall "Development Tools"
wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
rpm -ivh mysql80-community-release-el7-1.noarch.rpm
2.1yum install 和yum groupinstall的区别:
# yum install :安装单个软件
yum grouplist :查看这个软件的所有软件包,每次安装前可以先查看yum grouplist有哪些软件,然后再去安装yum groupinstall
yum groupinstall :安装多个软件,安装这个软件的所有依赖的软件包,yum groupinstall安装的时候软件包名必须加双引号
3.修改安装mysql的yum源文件
vim /etc/yum.repos.d/mysql-community.repo
#把安装5.7的源打开, 关闭安装8.0的源
![](https://i-blog.csdnimg.cn/blog_migrate/c6f5563d6fd6375aae44c94b997ba5c3.png)
4.安装mysql服务
yum -y install mysql-community-server
systemctl start mysqld && systemctl enable mysqld #开启mysql服务并设置为开机自启动
5.查看数据库密码:
grep "password" /var/log/mysqld.log #root@localhost: 密码
![](https://i-blog.csdnimg.cn/blog_migrate/745ec00c8552202f0baad50a51e39e98.png)
6.修改数据库密码:
mysql -uroot -p"密码" #先登陆mysql
![](https://i-blog.csdnimg.cn/blog_migrate/cc22738a81c5ebb856fb14785f626159.png)
alter user 'root'@'localhost' identified by "密码";
![](https://i-blog.csdnimg.cn/blog_migrate/479fddf961d4a646c8917ddb54bb480d.png)
这个修改密码出现了报错,原因是密码设置的太简单了,不安全;
6.1mysql设置密码的要求:
大小写字母
非连续数字
特殊符号
密码长度为8
7.自动调整免密难度 [也可以不设置!]
set global validate_password_policy=0; #设置密码的难度
set global validate_password_length=6; #设置密码的长度
![](https://i-blog.csdnimg.cn/blog_migrate/22f01b9ebb431dedf02f80fc654bef76.png)
8.刷新权限设置
这样就设置成功了
flush privileges; #这是一个用于刷新数据库信息的命令
exit #退出数据库
![](https://i-blog.csdnimg.cn/blog_migrate/e035ea478e6224b7b7c2452f9fa7a888.png)
源码安装:
1.关闭文件防火墙和防火墙
sed -ri s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config #关闭文件防火墙
systemctl stop firewalld && systemctl disable firewalld #关闭防火墙并设置为开机自关闭
2.安装下载依赖包
yum -y update #更新系统,不建议运行
yum -y install ncurses ncurses-devel bison libgcrypt perl make cmake
3.安装下载mysqld
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.24.tar.gz
建议直接去官网下载,再移动到虚拟机
4.添加自定义的mysqld进程的用户mysql
groupadd mysql
useradd -M -g mysql -s /sbin/nologin mysql
5.添加自定义mysql数据库目录及其他必要的目录
mkdir -p /usr/local/mysqld/{data,mysql,log,tmp}
chown -R mysql:mysql /usr/local/mysqld/*
6.解压文件
tar xf mysql-boost-5.7.24.tar.gz
7.执行部署操作
cd mysql-5.7.24
# 以下是一整条命令,请勿分开运行
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysqld/mysql \
-DMYSQL_DATADIR=/usr/local/mysqld/data \
-DWITH_BOOST=/root/mysql-5.7.24/boost/ \
-DDEFAULT_CHARSET=utf8 #过程偏久
企业中常见的mysql部署:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysqld/mysql \
-DMYSQL_DATADIR=/usr/local/mysqld/data \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/root/mysql-5.7.24/boost \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DENABLE_DTRACE=0 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EMBEDDED_SERVER=1
echo $? #查看一条命令是否运行成功,成功返回0
make -j `lscpu | awk 'NR==4{ print $2 }'`
echo $?
make install
# make -j `lscpu | awk 'NR==4{ print $2 }'` //该命令的作用是启用多个线程同时编译程序,线程数等于 CPU 的核心数
// -j 参数表示并行编译,即启用多个线程同时编译,加快编译速度
//`lscpu | awk 'NR==4{ print $2 }'` 用于提取 lscpu 命令输出的第 4 行的第 2 个字段,即 CPU 的核心数
8.初始化mysql安装配置
8.1提升mysql命令为系统级别命令[配置环境]
# cat /etc/profile.d/mysql.sh
MYSQL_HOME=/usr/local/mysqld/mysql
PATH=$PATH:$MYSQL_HOME/bin
export MYSQL_HOME PATH
# source /etc/profile.d/mysql.sh
8.2.拷贝默认配置文件至/etc/my.cnf
/etc/my.cnf这个文件是mysql全局配置文件
chown -R mysql.mysql /usr/local/mysqld/* #修改权限
cd /usr/local/mysqld/mysql/mysql-test/include
cp /etc/{my.cnf,my.cnf.bak}
cp default_mysqld.cnf /etc/my.cnf
# vim /etc/my.cnf
#清空原有内容,添加以下内容
[mysqld]
basedir = /usr/local/mysqld/mysql
datadir = /usr/local/mysqld/data
tmpdir = /usr/local/mysqld/tmp
socket = /usr/local/mysqld/tmp/mysql.sock
pid_file = /usr/local/mysqld/tmp/mysqld.pid
log_error = /usr/local/mysqld/log/mysql_error.log
slow_query_log_file = /usr/local/mysqld/log/slow_warn.log
server_id = 11
user = mysql
port = 3306
bind-address = 0.0.0.0
character-set-server = utf8
default_storage_engine = InnoDB
[mysqld]
# mysql安装目录
basedir = /usr/local/mysqld/mysql
# mysql数据目录
datadir = /usr/local/mysqld/data
# MySQL 临时数据目录
tmpdir = /usr/local/mysqld/tmp
# mysql 套接字
socket = /usr/local/mysqld/tmp/mysql.sock
# pid 文件
pid_file = /usr/local/mysqld/tmp/mysqld.pid
# mysql 错误日志
log_error = /usr/local/mysqld/log/mysql_error.log
# mysql 慢查询日志
slow_query_log_file = /usr/local/mysqld/log/slow_warn.log
# mysql-server的标志id 如果有多台机器,每个都要唯一 ip最后一位
server_id = 11
user = mysql
port = 3306
bind-address = 0.0.0.0
# 字符集
character-set-server = utf8
# 存储引擎
default_storage_engine = InnoDB
8.3.执行数据库式服务初始化操作:
mysqld --defaults-file=/etc/my.cnf --initialize --user='mysql'
# 以 mysql 用户身份,使用指定的配置文件启动 MySQL 数据库服务,并初始化 MySQL 数据库
8.4.启动mysqld服务
mysqld_safe --defaults-file=/etc/my.cnf &
mysqld_safe 是 MySQL 数据库的安全启动程序,用于启动 MySQL 数据库服务并提供一些安全保护措施。
--defaults-file=/etc/my.cnf 参数指定 MySQL 数据库的配置文件路径为 /etc/my.cnf,即使用指定的配置文件启动 MySQL 数据库服务。
& 符号用于将命令放入后台运行,即在命令末尾加上 & 符号可以让命令在后台运行。
综上,该命令的作用是以安全启动程序的方式,使用指定的配置文件启动 MySQL 数据库服务,并将该命令放入后台运行
8.5.设置mysql.socket软链接到mysql命令指定的目录中
ln -s /usr/local/mysqld/tmp/mysql.sock /tmp/mysql.sock
8.6配置mysqld服务管理工具[使systemctl可以控制mysql启动关闭]
cd /usr/local/mysqld/mysql/support-files
cp mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
9.查看数据库密码:
grep "password" /usr/local/mysqld/log/mysql_error.log #root@localhost: 密码
![](https://i-blog.csdnimg.cn/blog_migrate/cce54906fd1f01fe0a16ed13a48954dd.png)
8.7.登录数据库并进行更改密码
mysql -uroot -p"密码" #先登陆mysql
![](https://i-blog.csdnimg.cn/blog_migrate/cc22738a81c5ebb856fb14785f626159.png)
alter user 'root'@'localhost' identified by "密码";
8.7刷新权限
flush privileges; #这是一个用于刷新数据库信息的命令
exit #退出数据库