sed -ri s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config #关闭文件防火墙
systemctl stop firewalld && systemctl disable firewalld #关闭防火墙并设置为开机自关闭
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
# yum install :安装单个软件
yum grouplist :查看这个软件的所有软件包,每次安装前可以先查看yum grouplist有哪些软件,然后再去安装yum groupinstall
yum groupinstall :安装多个软件,安装这个软件的所有依赖的软件包,yum groupinstall安装的时候软件包名必须加双引号
vim /etc/yum.repos.d/mysql-community.repo
#把安装5.7的源打开, 关闭安装8.0的源
yum -y install mysql-community-server
systemctl start mysqld && systemctl enable mysqld #开启mysql服务并设置为开机自启动
grep "password" /var/log/mysqld.log #root@localhost: 密码
mysql -uroot -p"密码" #先登陆mysql
alter user 'root'@'localhost' identified by "密码";
这个修改密码出现了报错,原因是密码设置的太简单了,不安全;
大小写字母
非连续数字
特殊符号
密码长度为8
set global validate_password_policy=0; #设置密码的难度
set global validate_password_length=6; #设置密码的长度
这样就设置成功了
flush privileges; #这是一个用于刷新数据库信息的命令
exit #退出数据库
sed -ri s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config #关闭文件防火墙
systemctl stop firewalld && systemctl disable firewalld #关闭防火墙并设置为开机自关闭
yum -y update #更新系统,不建议运行
yum -y install ncurses ncurses-devel bison libgcrypt perl make cmake
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.24.tar.gz
建议直接去官网下载,再移动到虚拟机
groupadd mysql
useradd -M -g mysql -s /sbin/nologin mysql
mkdir -p /usr/local/mysqld/{data,mysql,log,tmp}
chown -R mysql:mysql /usr/local/mysqld/*
tar xf mysql-boost-5.7.24.tar.gz
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 的核心数
# 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
/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
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 数据库服务,并将该命令放入后台运行
ln -s /usr/local/mysqld/tmp/mysql.sock /tmp/mysql.sock
cd /usr/local/mysqld/mysql/support-files
cp mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
grep "password" /usr/local/mysqld/log/mysql_error.log #root@localhost: 密码
8.7.登录数据库并进行更改密码
mysql -uroot -p"密码" #先登陆mysql
alter user 'root'@'localhost' identified by "密码";
flush privileges; #这是一个用于刷新数据库信息的命令
exit #退出数据库