Shell离线脚本安装mysql、更新密码

目录

手动操作

Shell脚本操作


手动操作

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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

墨痕诉清风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值