mysql的安装可分为tar包安装和rpm包安装,对于dao人员来说还是选择tar安装,但是对于我们大数据测试使用就可以使用简单的rpm方式安装
而为了避免需要安装mysql有需要去网上找文档所以决定写成功脚本自动安装,每次只需要下载自己的mysql版本rpm包即可
mysql安装步骤:
1、下载rpm包
官网地址:https://dev.mysql.com/downloads/mysql/
选择历史版本
根据自己的机器进行选择下载
2、检测自带的 mariadb并将其卸载
检测
rpm -qa | grep -i -E mysql\|mariadb
删除
rpm -qa | grep -i -E mysql\|mariadb | xargs -n1 sudo rpm -e --nodeps
3、安装mysql的rpm包
循序一定别乱,乱了可能出现莫名其妙的问题
##安装mysql依赖
rpm -ivh mysql-community-common-5.7.16-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.16-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.16-1.el6.x86_64.rpm
##安装 mysql-client
rpm -ivh mysql-community-client-5.7.16-1.el6.x86_64.rpm
##安装 mysql-server
rpm -ivh mysql-community-server-5.7.16-1.el6.x86_64.rpm
到这就安装完成了,
4、启动mysql,设置成功开机自启动
sudo systemctl start mysqld
sudo systemctl enable mysqld
5、配置mysql密码策略
查看 mysql 密码
sudo cat /var/log/mysqld.log | grep password
登入mysql
mysql -uroot -p'_t2jBF*t06:F'
第一次使用必须设置复杂密码(由于 mysql 密码策略,此密码必须足够复杂)
set password=password('YY2&6=st22');
更改 mysql 密码策略最低限制,大于4位即可
set global validate_password_length=4;
set global validate_password_policy=0;
设置简单好记的密码
set password=password('123123');
进入 msyql 数据库修改 user 表,把 Host 表内容修改为%(允许任何机器远程root登入)
use mysql;
update user set host='%' where user='root';
flush privileges;
退出
quit;
使用新密码登入
mysql -uroot -p123123
到这整个mysql就安装好了
创建一个test_db测试
create database test_db;
6、mysql的相关安装文件路径
日志: /var/log/mysqld.log
数据库目录:/var/lib/mysql/
命令配置: /usr/share/mysql (mysql.server命令及配置文件)
相关命令: /usr/bin (mysqladmin mysqldump等命令)
配置文件 /etc/my.cnf
7、自动安装脚本(之前安装过的会先卸载)
#!/bin/bash
##root用户登入的密码
setNewPassword=123123
##你安装mysql的版本
mysql_version=5.7.16-1.el7
##放rpm的路径
package_dir=$(pwd)/mysql_package/mysql-${mysql_version}.x86_64.rpm-bundle
remove_mysql(){
echo "****************开始删除mysql*****************************"
sudo systemctl stop mysqld.service
sudo rm -rf /var/lib/mysql
sudo rm -rf /var/log/mysqld.log
sudo rm -rf /usr/share/mysql
sudo rm -rf /usr/bin/mysql*
if [ $? != 0 ]; then
echo '删除mysql失败,即将退出!'
exit
fi
echo "****************删除mysql完成*****************************"
}
install_mysql(){
echo "****************开始安装mysql依赖*****************************"
##检测自带的 mariadb并将其卸载
rpm -qa | grep -i -E mysql\|mariadb | xargs -n1 sudo rpm -e --nodeps
##安装mysql依赖
sudo rpm -ivh ${package_dir}/mysql-community-common-${mysql_version}.x86_64.rpm --force --nodeps
sudo rpm -ivh ${package_dir}/mysql-community-libs-${mysql_version}.x86_64.rpm --force --nodeps
sudo rpm -ivh ${package_dir}/mysql-community-libs-compat-${mysql_version}.x86_64.rpm --force --nodeps
##安装mysql-client
sudo rpm -ivh ${package_dir}/mysql-community-client-${mysql_version}.x86_64.rpm --force --nodeps
##安装mysql-server
sudo rpm -ivh ${package_dir}/mysql-community-server-${mysql_version}.x86_64.rpm --force --nodeps
if [ $? != 0 ]; then
echo "安装mysq依赖失败,即将退出脚本"
exit
fi
echo "****************安装mysql依赖完成*****************************"
}
check_mysqlstatus(){
echo "*************启动mysql,修改密码配置***********************"
sudo systemctl start mysqld
mysqlstatus=`sudo systemctl status mysqld | grep "Active" | awk '{print $3}'`
#echo "${mysqlstatus}"
if [ "${mysqlstatus}" == "(running)" ]; then
echo "mysql启动成功"
change_password
#echo ${setNewPassword}
else
echo "mysql启动失败,即将退出脚本"
exit
fi
echo "****************mysql密码配置完成***************************"
}
change_password(){
##查看 mysql 密码
initPassword=`sudo cat /var/log/mysqld.log | grep "password is generated for root@localhost"|awk '{print $11}'`
#echo "'${initPassword}'"
##用刚刚查到的密码进入 mysql
mysql --connect-expired-password -uroot -p"${initPassword}" -e "
##设置复杂密码(由于 mysql 密码策略,此密码必须足够复杂)
set password=password('Qs23=zs32');
##更改 mysql 密码策略
set global validate_password_length=4;
set global validate_password_policy=0;
##设置简单好记的密码
set password=password('${setNewPassword}');
##进入 msyql 库
use mysql;
##查询 user 表
##修改 user 表,把 Host 表内容修改为%
update user set host='%' where user='root';
##刷新
flush privileges;
##退出
#quit;
"
if [ $? != 0 ]; then
echo 'mysql密码配置失败,即将退出!'
exit
fi
}
#######################################################################
##删除之前安装mysql的文件
remove_mysql
##安装mysql依赖
install_mysql
##配置mysql密码
check_mysqlstatus