当前位置: > CentOS > CentOS教程 >

CentOS7.2自动安装mysql

时间:2017-02-24 02:26来源:linux.it.net.cn 作者:IT

###########################请先备份数 #######################

 

——每次安装MySQL,劳神费力,时间宝贵安能浪费

 

——CentOS6.5 CentOS7.2 自测成功

 

——现在自己装MYSQL都是用这个,那叫一个舒爽

 

安装:下载 mysql.rar 文件按照 readme.txt 操作即可

 

############################# 结束符 ##########################

或者也可以自己倒腾

shell文件:

 

[java] view plain copy 
 
 在CODE上查看代码片派生到我的代码片
  1. #!/bin/sh  
  2.   
  3. #关闭进程  
  4. /etc/init.d/mysqld stop  
  5. killall mysqld  
  6. pids=($(ps -ef | grep mysql | awk '{print $2}'))  
  7. for((i=0; i<${#pids[@]}; i++));do  
  8.   echo "关闭进程: pid ${pids[i]}"  
  9.   kill -9 ${pids[i]}  
  10. done  
  11.   
  12. #uninstall MariaDB  
  13. mariadb=($(rpm -qa|grep -i MariaDB))  
  14. for((i=0; i<${#mariadb[@]}; i++));do  
  15.   echo "旧版mariadb: ${mariadb[i]}"  
  16.   echo "删除..."  
  17.   yum -y remove ${mariadb[i]}  
  18. done  
  19. #强制卸载,防止残留  
  20. mariadb=($(rpm -qa|grep -i MariaDB))  
  21. for((i=0; i<${#mariadb[@]}; i++));do  
  22.   echo "旧版mariadb: ${mariadb[i]}"  
  23.   echo "强制删除..."  
  24.   rpm -e --nodeps ${mariadb[i]}  
  25.   rpm -e --noscripts ${mariadb[i]}  
  26. done  
  27.   
  28. #uninstall old mysql  
  29. old_mysql=($(rpm -qa|grep -i mysql))  
  30. for((i=0; i<${#old_mysql[@]}; i++));do  
  31.   echo "旧版MYSQL: ${old_mysql[i]}"  
  32.   echo "删除..."  
  33.   yum -y remove java ${old_mysql[i]}  
  34. done  
  35. #remove old mysql files  
  36. old_mysql_file=($(find / -name mysql))  
  37. for((i=0; i<${#old_mysql_file[@]}; i++));do  
  38.   echo "旧版MYSQL文件: ${old_mysql_file[i]}"  
  39.   if [[ ${old_mysql_file[i]} =~ "/usr/mysql" ]]  
  40.   then  
  41.     continue  
  42.   fi    
  43.   echo "删除..."  
  44.   rm -rf ${old_mysql_file[i]}  
  45. done  
  46. #remove setting files  
  47. rm -rf /var/log/mysqld.log  
  48. rm -rf /etc/my.cnf*  
  49. rm -rf /run/mysqld/* 
  50. rm -rf /usr/bin/mysql* 
  51.  
  52. #find zip mysql file 
  53. srcPath=$(find /usr/mysql -maxdepth 1 -type f|grep mysql*.tar) 
  54. if [[ $srcPath =~ "mysql" ]] 
  55.   then 
  56.     echo "安装包:$srcPath" 
  57.   else 
  58.     echo "下载mysql..." 
  59.     yum -y install wget 
  60.     wget https://downloads.mysql.com/archives/get/file/mysql-5.7.13-1.el6.x86_64.rpm-bundle.tar -P /usr/mysql/ 
  61.     srcPath=$(find /usr/mysql -maxdepth 1 -type f|grep mysql*.tar) 
  62. fi 
  63.  
  64. #unzip 
  65. echo "解压..." 
  66. tar xvf $srcPath 
  67.  
  68. #安装依赖 
  69. echo "安装 perl-DBI..." 
  70. yum install -y perl-DBI 
  71. echo "安装 libaio..." 
  72. yum install -y libaio 
  73.  
  74. #install 
  75. rpms=($(find /usr/mysql -maxdepth 1 -type f|grep mysql-community)) 
  76. for((r=${#rpms[@]}; r>0; r--));do 
  77.   echo "$r" 
  78.   for((i=0; i<${#rpms[@]}; i++));do 
  79.     echo "" 
  80.     echo "安装: ${rpms[i]}" 
  81.     echo "安装..." 
  82.     rpm -ivh ${rpms[i]}  
  83.   done 
  84. done 
  85.  
  86. #开机启动 
  87. chkconfig mysqld on 
  88.  
  89. echo "" 
  90. echo "安装完毕,初始化设置" 
  91. /etc/init.d/mysqld start 
  92.  
  93. tmpPwd=$(grep 'temporary password' /var/log/mysqld.log |awk  -F ': '  '{print $2}') 
  94. echo "Temp Password is $tmpPwd" 
  95.  
  96. echo "#1.停止mysql数据库" 
  97. /etc/init.d/mysqld stop   
  98.     
  99. echo "#2.启动mysqld_safe"   
  100. mysqld_safe --user=mysql --skip-grant-tables --skip-networking &   
  101.  
  102. for((i=0; i<10; i++));do 
  103.   sleep 4s 
  104.   ps=($(ps -ef | grep mysqld_safe | awk '{print $1}')) 
  105.   if [ ${#ps[@]} -gt 1 ];then 
  106.     echo "mysqld_safe started" 
  107.      
  108.     echo "#3.使用root登录mysql数据库并设置密码为"root" "  
  109.     mysql -u root mysql <<EOF 
  110.       /* 更新root密码  */  
  111.       UPDATE user SET authentication_string=PASSWORD('root') where USER='root';  
  112.       /* 刷新权限  */  
  113.       FLUSH PRIVILEGES;  
  114. EOF  
  115.   
  116.     tmpPwd="root"  
  117.     break  
  118.   else  
  119.     echo "${i}..."  
  120.     sleep 1s  
  121.     if [ ${i} -ge 5 ];then  
  122.       echo "mysqld_safe : not started"  
  123.       break;  
  124.     fi  
  125.   fi      
  126. done  
  127.   
  128. echo "重启mysql"    
  129. /etc/init.d/mysqld restart    
  130.   
  131. #将port=3306写入/etc/my.cnf文件  
  132. echo "设置端口"  
  133. sed -i '/datadir=/i\port=3306' /etc/my.cnf  
  134.   
  135. echo "success restart..."  
  136. service mysqld restart  
  137.   
  138. echo "mysql has been installed and started"  
  139. echo ""  
  140. echo "  
  141.   You probably need to do operations as follows by yourself for some security reasons.  
  142.   /* 进入MYSQL */  
  143.   mysql -uroot -p${tmpPwd}  
  144.   /* 修改密码长度策略 */  
  145.   set global validate_password_policy=0;  
  146.   set global validate_password_length=0;  
  147.   /* 重置密码 */  
  148.   alter user 'root'@'localhost' identified by 'root';  
  149.   FLUSH PRIVILEGES;  
  150.   /* 设置外网访问  */  
  151.   use mysql;  
  152.   select 'host' from user where user='root';  
  153.   update user set host = '%' where user='root';  
  154.   FLUSH PRIVILEGES;  
  155.   "  

 

1. 放置到 /usr/mysql 下运行

2. 首次安装自动下载mysql-5.7.13-1.el6.x86_64.rpm-bundle.tar,或者自己下载新版rpm-bundle.tar的mysql文件放入/usr/mysql/

3. 初始密码设置为root,请按安装提示激活




(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容