目录
手动操作
CentOS7的yum源中默认好像是没有mysql的。为了解决这个问题,我们要先下载mysql的repo源。
1. 下载mysql的repo源
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
2. 安装mysql-community-release-el7-5.noarch.rpm包
sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
安装这个包后,会获得两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo。
3. 安装mysql
sudo yum install mysql-server
根据步骤安装就可以了,不过安装完成后,没有密码,需要重置密码。
4. 启动myslq
service mysql start
# 设置开机启动
systemctl enable mysqld.service
5. 重置密码
重置密码前,首先要登录
mysql -u root
登录时有可能报这样的错:ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2),原因是/var/lib/mysql的访问权限问题。下面的命令把/var/lib/mysql的拥有者改为当前用户:
sudo chown -R openscanner:openscanner /var/lib/mysql
然后,重启服务:
service mysqld restart
接下来登录重置密码:
mysql -u root
mysql > use mysql;
mysql > update user set password=password(‘123456‘) where user=‘root‘;
mysql > exit;
6. 登录
mysql -hlocalhost -uroot -p
-h数据库主机
-u用户
-p密码
-P端口号(大写P)
Shell脚本操作
1. 首先下载离线包(正常5.6版本12个离线包)
yum --downloadonly --downloaddir=/opt/mysql install mysql-devel mysql-server
2. 安装离线包
rpm -ivh /opt/mysql/*.rpm --force --nodeps
3. 启动mysql并设置开机启动
service mysql start
# 设置开机启动
systemctl enable mysqld.service
4. shell(version==5.6)
#!/bin/sh
# @author: 爸爸
# @created: 2021.06.22
mysql_username="root"
mysql_password=""
default_mysql_password="123456"
chage_mysql_password="update user set password=password('$default_mysql_password') where user='root';"
update_mysql_password="flush privileges;"
mysql -u $mysql_username $mysql_password <<EOF
use mysql;
$chage_mysql_password
$update_mysql_password
exit
EOF
if [ $? -eq 0 ];then
echo -e "\033[36;1mInstall and update mysql success! \033[0m"
else
echo -e "\033[36;1mInstall and update mysql fail! \033[0m"
fi
(version==5.7)
#!/bin/sh
# @author: zhaoyun
# @created: 2021.06.22
mysql_cnf="/etc/my.cnf"
mysql_passwd="asdasd234234"
init_one(){
cat /dev/null > $mysql_cnf
echo "[mysqld]" >> $mysql_cnf
echo "datadir=/var/lib/mysql" >> $mysql_cnf
echo "socket=/var/lib/mysql/mysql.sock" >> $mysql_cnf
echo "symbolic-links=0" >> $mysql_cnf
echo "log-error=/var/log/mysqld.log" >> $mysql_cnf
echo "pid-file=/var/run/mysqld/mysqld.pid" >> $mysql_cnf
echo "skip-grant-tables=1" >> $mysql_cnf
}
init_two(){
cat /dev/null > $mysql_cnf
echo "[mysqld]" >> $mysql_cnf
echo "datadir=/var/lib/mysql" >> $mysql_cnf
echo "socket=/var/lib/mysql/mysql.sock" >> $mysql_cnf
echo "symbolic-links=0" >> $mysql_cnf
echo "log-error=/var/log/mysqld.log" >> $mysql_cnf
echo "pid-file=/var/run/mysqld/mysqld.pid" >> $mysql_cnf
}
init_one
service mysqld restart
mysql -uroot <<EOF
flush privileges;
ALTER USER 'root'@'localhost' IDENTIFIED BY '$mysql_passwd';
quit
EOF
if [ $? -eq 0 ];then
echo -e "\033[36;1m[+] Install and update mysql success! \033[0m"
else
echo -e "\033[36;1m[-] Install and update mysql fail! \033[0m"
fi
init_two
service mysqld restart
5. 创建数据库,已有就删除
#!/bin/sh
# @author: 爸爸
# @created: 2021.06.22
if [ `id -u` -ne 0 ]
then
echo "[-] Please re-run as root."
exit 1
fi
recreate_aaaaaa()
{
mysql -h 127.0.0.1 -uroot -p1234 2>/dev/null <<EOF
drop database if exists aaaaaa;
create database aaaaaa;
EOF
}
echo "[+] create aaaaaa database"
recreate_aaaaaa;