1.1、装备工作
在opt/目录下准备两个文件夹 download (用于放jdk压缩包)和software (安装位置)
需要把jdk安装包放在download文件夹下
(如果不一样,需要改脚本中的地址)
#!/bin/bash #环境变量文件的地址 ENV_DIR='/etc/profile.d/myenv.sh' #绿色安装根目录 SOFTWARE_DIR='/opt/software/' #安装源文件目录 DOWNLOAD_DIR='/opt/download/' ####### JDK安装 ######## #### 清除历史痕迹 #通过jps命令的执行结果判定java环境变量是否存在,如果存在则删除 RST=`jps` if [[ $RST=~^\d+\sJps$ ]] then #检索环境变量配置文件确定jdk环境变量是否存在 RST=`cat $ENV_DIR|grep '#jdk'` if [[ $RST ]] then #定位jdk环境变量的位置并删除 sed -rin '/#.*?jdk/,+4d' $ENV_DIR echo 'jdk env removed' else echo 'jdk env exists but no config in myenv.sh' fi else echo 'no jdk env' fi #检查安装目录下是否存在已解压的jdk目录,如果存在则删除 RST=`ls /opt/software|grep jdk*` if [[ $RST ]] then #递归删除已安装的jdk目录 rm -rf $SOFTWARE_DIR$RST else echo 'no jdk dir' fi #每次添加新环境变量前激活一次 source /etc/profile #检查自定义环境变量源文件myenv.sh是否存在,不存在则创建 ENV_DIR="/etc/profile.d/" RST=`ls $ENV_DIR|grep myenv.sh` if [[ -z $RST ]] then ENV_DIR=$ENV_DIR'myenv.sh' eval touch $ENV_DIR #新建的空文件无法通过sed修改内容,因此创建文件后使用流重定向先行添加一行 echo '#end'>$ENV_DIR echo $ENV_DIR' created' else ENV_DIR=$ENV_DIR'myenv.sh' echo $ENV_DIR' existed' fi echo 'ENV_DIR : '$ENV_DIR #解压缩jdk tar包到目标路径 RST=(`ls $DOWNLOAD_DIR|grep jdk`) if [ ${#RST[@]} -gt 0 ] then RST=${RST[0]} tar -zxf $DOWNLOAD_DIR$RST -C $SOFTWARE_DIR eval mv $SOFTWARE_DIR'jdk*' $SOFTWARE_DIR'jdk' echo 'jdk uncompressed' else echo 'no jdk source in '$DOWNLOAD_DIR fi #构建jdk环境变量列表字符串 JAVA_ENV='CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar PATH=$JAVA_HOME/bin:$PATH'" JAVA_HOME=$SOFTWARE_DIR"'jdk #jdk' #在首行之前插入空行 sed -in '1{x;p;x}' $ENV_DIR #将jdk环境变量列表加入myenv.sh for item in $JAVA_ENV do sed -in "1i${item/-/ }" $ENV_DIR echo ${item/-/ }' appended' done #每次添加完新环境变量后再次激活 source /etc/profile echo 'jdk env variables activated'
#!/bin/bash cd ~ ARSL=`pwd` ARSL="$ARSL/.ALLOW_RM_SRC_LOG" cd - function checkAndRecord(){ if [ ! -e $ARSL ] then eval touch $ARSL fi RST=`eval cat $ARSL|grep $1` if [ -z $RST ] then echo $1>>$ARSL fi } function stopService(){ RST=`systemctl status mysqld|grep ' active (.*)'` if [ -n "$RST" ] then echo -n "service $1 is active running ... " systemctl stop $1 RST=`systemctl status $1|grep ' active (.*)'` if [[ $RST ]] then echo 'but fail to close' exit -1 else echo 'and succeed in closing' fi else echo "service $1 is inactive dead" fi } function removeRpm(){ RST=`cat $ARSL|grep $1` if [ $RST ] then RST=`rpm -qa|grep $1` echo "===================yum remove $1===========" for i in $RST do yum -y remove $i>/dev/null 2>&1 echo $i"... removed" done echo "==================================================" RST=`find / -name $1` ehco "=============clear $1 left resource===============" for i in $RST do rm -rf $i done echo "==================================================" rm -f $2".*" echo "$1 left resource $2 has benn removed " else echo "WARN : you are trying to remove $1 which is not allowed " fi } # rpm安装:兼容远程安装和本地安装(提供rpm资源的完整路径) function installRpm(){ RST=$1 ISERNAME=$2 SSERNAME=$3 if [[ $RST=~^http ]];then echo "rpm install $RST ..." wget $RST RST=`basename $RST` fi rpm -ivh $RST yum -y install $ISERNAME DIR="$4.cnf" if [ -e $DIR ] then cat $DIR>$5 echo "$4 configuration has been overwrtiten " else echo "there may be chinese random code for lack of $DIR" fi systemctl start $SSERNAME checkAndRecord $4 echo "$ISERNAME installed" } stopService mysqld removeRpm mysqld /etc/my.cnf.rpm SRC="https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm" installRpm $SRC mysql-server mysqld mysql /etc/my.cnf
第二步的脚本运行结束后,检查一下
systemctl status mysqld
如果是running 就没问题,
如果你原来安装过Mysql,再安装时原来的数据库还会存在
可以通过以下命令删除原来数据库
rm -rf /var/lib/mysql
1、最简单的方式
通过命令,获得临时密码
grep ‘temporary password’ /var/log/mysqld.log
复制这个密码,用它先登录
mysql -u root -p
然后输入上面的密码就可以登录,登录后无法进行别的操作,会强制你修改密码,如图
alter user ‘root’@‘localhost’ identified by 'PASSword000’;
mysql对密码的默认要求是包含字符大小写和数字,如果不想麻烦就设置一个符合要求的密码即可。
exit;退出
重新登录
mysql -u root -p
输入刚才设置的密码PASSword000,就完成了。
2、跳过密码验证方式
重置密码的第一步就是跳过MySQL的密码认证过程,方法如下:
vim /etc/my.cnf(注:windows下修改的是my.ini)
在文档内搜索mysqld定位到[mysqld]文本段:
/mysqld(在vim编辑状态下直接输入该命令可搜索文本内容)
在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程
这位老哥写的更详细,可以看这里
原文链接:https://blog.csdn.net/wohiusdashi/article/details/89358071
首先需要关闭服务进行字符集配置
systemctl stop mysqld
vi /etc/my.cnf
把以下内容写进去
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
再重启服务即可