Mysql二进制安装

梦里梦外; 2022-09-15 06:04 297阅读 0赞

上干货:

  1. #!/bin/bash
  2. MYSQL_TYPE=5.7
  3. MYSQL_VER=5.7.24-linux-glibc2.12-x86_64
  4. PORT=3306
  5. TOOLS_DIR=/home/sunbox/soft
  6. INSTALL_DIR=/usr/local
  7. ROOTPWD=password@123456
  8. # Check if user is root
  9. if [ $(id -u) != "0" ]; then
  10. echo "Error: You must be root to run this script, please use root to install"
  11. exit 1
  12. fi
  13. # Check network environmental
  14. #NET_NUM=`ping -c 4 www.baidu.com |awk '/packet loss/{print $6}' |sed -e 's/%//'`
  15. #if [ -z "$NET_NUM" ] || [ $NET_NUM -ge 10 ];then
  16. # echo "Please check your internet"
  17. # exit 1
  18. #fi
  19. #Backup old my.cnf
  20. if [ -s /etc/my.cnf ]; then
  21. mv /etc/my.cnf /etc/my.cnf.`date +%Y%m%d%H%M%S`.bak
  22. fi
  23. #安装编译工具
  24. yum install gcc gcc-c++ ncurses ncurses-devel openssl openssl-devel libtool* cmake
  25. [ ! -d $TOOLS_DIR ] && mkdir -pv $TOOLS_DIR
  26. cd $TOOLS_DIR
  27. if [ ! -f mysql-${MYSQL_VER}.tar.gz ]; then
  28. wget http://47.92.71.36:28801/mysql-${MYSQL_VER}.tar.gz
  29. fi
  30. tar xvf mysql-${MYSQL_VER}.tar.gz -C $INSTALL_DIR
  31. cd $INSTALL_DIR
  32. [ ! -e $INSTALL_DIR/mysql ] && ln -sv $INSTALL_DIR/mysql-${MYSQL_VER} $INSTALL_DIR/mysql
  33. #edit /etc/my.cnf
  34. cat >>/etc/my.cnf<<EOF
  35. [mysqld]
  36. port=$PORT
  37. #设置安装目录
  38. basedir=/usr/local/mysql
  39. # 设置mysql数据库的数据的存放目录
  40. datadir=/usr/local/mysql/data
  41. socket=/tmp/mysql.sock
  42. user=mysql
  43. tmpdir=/tmp
  44. # 开启ip绑定
  45. bind-address=0.0.0.0
  46. # 允许最大连接数
  47. max_connections=1000
  48. # 服务端使用的字符集默认为8比特编码的latin1字符集
  49. character-set-server=utf8mb4
  50. collation-server=utf8mb4_general_ci
  51. # 创建新表时将使用的默认存储引擎
  52. default-storage-engine=INNODB
  53. innodb_buffer_pool_size=64MB
  54. max_allowed_packet=16M
  55. log-error=/usr/local/mysql/data/error.log
  56. [mysqld_safe]
  57. pid-file=/usr/local/mysql/data/mysql.pid
  58. [mysql]
  59. # 设置mysql客户端默认字符集
  60. default-character-set=utf8mb4
  61. [client]
  62. #指定客户端连接mysql时的socket通信文件路径
  63. socket=/tmp/mysql.sock
  64. default-character-set=utf8mb4
  65. EOF
  66. #创建mysql用户和组
  67. groupadd mysql
  68. useradd -r -g mysql mysql
  69. mkdir -p $INSTALL_DIR/mysql/data
  70. cd $INSTALL_DIR/mysql
  71. chown -R mysql:mysql $INSTALL_DIR/mysql-${MYSQL_VER}
  72. chown -R mysql:mysql $INSTALL_DIR/mysql
  73. #Compile mysql
  74. $INSTALL_DIR/mysql/bin/mysqld --user=mysql --basedir=$INSTALL_DIR/mysql --datadir=$INSTALL_DIR/mysql/data --initialize
  75. cp $INSTALL_DIR/mysql/support-files/mysql.server /etc/init.d/mysqld
  76. chkconfig --add mysqld
  77. cat>>/etc/profile.d/mysql.sh<<EOF
  78. export PATH=$PATH:$INSTALL_DIR/mysql/bin
  79. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$INSTALL_DIR/mysql/lib
  80. EOF
  81. source /etc/profile.d/mysql.sh
  82. firewall-cmd --add-port=$PORT/tcp --permanent
  83. firewall-cmd --reload
  84. service mysqld start
  85. Pass=$(grep 'A temporary password' $INSTALL_DIR/mysql/data/error.log | awk '{print $NF}')
  86. echo '临时密码:'$Pass
  87. /usr/local/mysql/bin/mysqladmin -uroot -p$Pass password $ROOTPWD
  88. cat >>/tmp/mysql_script<<EOF
  89. use mysql;
  90. ALTER USER 'root'@'localhost' IDENTIFIED BY 'sunbox@tbd7';
  91. CREATE USER 'root'@'%' IDENTIFIED BY 'sunbox@tbd7';
  92. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'sunbox@tbd7' WITH GRANT OPTION;
  93. FLUSH PRIVILEGES;
  94. EOF
  95. /usr/local/mysql/bin/mysql -uroot -p$ROOTPWD -h localhost < /tmp/mysql_script

发表评论

表情:
评论列表 (有 0 条评论,297人围观)

还没有评论,来说两句吧...

相关阅读

    相关 二进制安装MySQL

    我们平时安装MySQL都是源码包安装的,但是由于它的编译需要很长的时间,所以,阿铭建议你安装二进制免编译包。你可以到MySQL官方网站去下载 http://dev.mysql.