页面“Alpine”与“Mysql5.5 install”之间的差异

来自linux中国网wiki
(页面间的差异)
跳到导航 跳到搜索
 
 
第1行: 第1行:
 +
[[category:mysql]]
  
  
=pre=
+
=binary install=
占用内存仅仅 37M ,非常的小巧。适合用在树莓派或者其他低内存设备上。
 
[https://liyin.date/2017/03/18/alpine-linux-setup/index.html Alpine Linux 折腾记]
 
=download =
 
 
 
==x86==
 
https://alpinelinux.org/downloads/
 
https://mirrors.aliyun.com/alpine/v3.10/releases/x86_64/alpine-standard-3.10.3-x86_64.iso
 
http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/x86_64/alpine-standard-3.10.1-x86_64.iso
 
 
 
==Raspberry Pi==
 
 
 
AArch64是ARMv8 架构的一种执行状态 so 下载这个  拿回来试一下
 
http://mirrors.ustc.edu.cn/alpine/v3.8/releases/aarch64/alpine-rpi-3.8.1-aarch64.tar.gz
 
 
 
http://dl-cdn.alpinelinux.org/alpine/v3.8/releases/aarch64/alpine-rpi-3.8.1-aarch64.tar.gz
 
 
 
http://dl-cdn.alpinelinux.org/alpine/v3.8/releases/armhf/alpine-rpi-3.8.1-armhf.tar.gz
 
 
 
国内的mirrors  有时比较同步比较慢
 
https://mirrors.alpinelinux.org/
 
 
 
===install on pi===
 
[https://wiki.alpinelinux.org/wiki/Classic_install_or_sys_mode_on_Raspberry_Pi 要看 ]
 
 
 
https://wiki.alpinelinux.org/wiki/Raspberry_Pi
 
 
 
[https://wiki.alpinelinux.org/wiki/Create_a_Bootable_USB Create a Bootable USB]
 
 
 
https://my.oschina.net/u/2306127/blog/1587585
 
 
 
https://wiki.alpinelinux.org/wiki/Create_a_Bootable_USB
 
 
 
[https://xts.so/linux/install-the-alpine-linux-on-raspberry-pi-zero-w.html 在树莓派Zero W上安装alpine linux系统]
 
 
 
=安装过程=
 
 
 
输入root 没有密码 直接回车 如果是内网机器  记得打开 root login ssh
 
 
 
 
 
13-选择 sys 方式使用磁盘,将系统安装到本地硬盘-格式化硬盘-完成硬盘安装
 
sys
 
 
 
[https://blog.csdn.net/CSDN_duomaomao/article/details/76053229 Alpine linux硬盘安装]
 
 
 
=configure=
 
 
<pre>
 
<pre>
国内源
+
#!/bin/bash
 +
# Author:  linuxsa.org
 +
# BLOG:
  
a. 编辑 /etc/apk/repositories
 
b. 将里面 dl-cdn.alpinelinux.org 的 改成 mirrors.aliyun.com ; 保存退出即可
 
  
cat  /etc/apk/repositories
+
mysql_install_dir=/home/apps/mysql
#/media/cdrom/apks
+
mysql_data_dir=/home/apps/mysql/data
http://mirrors.aliyun.com/alpine/v3.10/main
+
Mem=`free -m | awk '/Mem:/{print $2}'`
  
http://mirrors.aliyun.com/alpine/v3.10/community
+
Install_MySQL55() {
#http://mirror.xtom.com.hk/alpine/v3.10/main
+
  #pushd ${oneinstack_dir}/src > /dev/null
#http://mirror.xtom.com.hk/alpine/v3.10/community
+
  #id -u mysql >/dev/null 2>&1
#http://mirror.xtom.com.hk/alpine/edge/main
+
  [ $? -ne 0 ] && useradd -M -s /sbin/nologin mysql
#http://mirror.xtom.com.hk/alpine/edge/community
 
#http://mirror.xtom.com.hk/alpine/edge/testing
 
  
apk update
+
  [ ! -d "${mysql_install_dir}" ] && mkdir -p ${mysql_install_dir}
 +
 
  
 +
  #if [ "${dbinstallmethod}" == "1" ]; then
 +
    #tar xzf mysql-${mysql55_ver}-linux-glibc2.12-${SYS_BIT_b}.tar.gz
 +
tar xvf  mysql-5.5.62-linux-glibc2.12-x86_64.tar.gz
  
alpine:~# cat /etc/apk/repositories
+
    #mv mysql-${mysql55_ver}-linux-glibc2.12-${SYS_BIT_b}/* ${mysql_install_dir}
#/media/cdrom/apks
+
mv  mysql-5.5.62-linux-glibc2.12-x86_64/*  ${mysql_install_dir}
http://mirrors.ustc.edu.cn/alpine/v3.8/main
+
http://mirrors.ustc.edu.cn/alpine/v3.8/community
+
mkdir -p ${mysql_data_dir};chown mysql.mysql -R ${mysql_data_dir}
cp /etc/apk/repositories /etc/apk/repositories.bak
+
</pre>
+
#这个没执行
 +
    #sed -i 's@executing mysqld_safe@executing mysqld_safe\nexport LD_PRELOAD=/usr/local/lib/libjemalloc.so@' ${mysql_install_dir}/bin/mysqld_safe
 +
    sed -i "s@/usr/local/mysql@${mysql_install_dir}@g" ${mysql_install_dir}/bin/mysqld_safe
 +
  
=软件包管理工具apk的基本使用=
+
#这个是源码的 跳过
<pre>
+
  elif [ "${dbinstallmethod}" == "2" ]; then
可以方便地安装、删除、更新软件。
+
    tar xzf mysql-${mysql55_ver}.tar.gz
 
+
    pushd mysql-${mysql55_ver}
#查询openssh相关的软件包
+
    [ "${armplatform}" == "y" ] && patch -p1 < ../mysql-5.5-fix-arm-client_plugin.patch
 
+
    cmake . -DCMAKE_INSTALL_PREFIX=${mysql_install_dir} \
apk search  openssh 
+
    -DMYSQL_DATADIR=${mysql_data_dir} \
 
+
    -DSYSCONFDIR=/etc \
#安装一个软件包
+
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \
 
+
    -DWITH_PARTITION_STORAGE_ENGINE=1 \
apk add  xxx 
+
    -DWITH_FEDERATED_STORAGE_ENGINE=1 \
 
+
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
#删除已安装的xxx软件包
+
    -DWITH_MYISAM_STORAGE_ENGINE=1 \
 
+
    -DWITH_READLINE=1 \
apk del  xxx 
+
    -DWITH_EMBEDDED_SERVER=1 \
 
+
    -DENABLE_DTRACE=0 \
#获取更多apk包管理的命令参数
+
    -DENABLED_LOCAL_INFILE=1 \
 
+
    -DDEFAULT_CHARSET=utf8mb4 \
apk --help    
+
    -DDEFAULT_COLLATION=utf8mb4_general_ci \
 +
    -DEXTRA_CHARSETS=all \
 +
    -DCMAKE_EXE_LINKER_FLAGS='-ljemalloc'
 +
    make -j ${THREAD}
 +
    make install
 +
    popd
 +
   fi
  
+
#这个if 不成理
 +
  if [ -d "${mysql_install_dir}/support-files" ]; then
 +
    #sed -i "s+^dbrootpwd.*+dbrootpwd='${dbrootpwd}'+" ../options.conf
 +
    echo "${CSUCCESS}MySQL installed successfully! ${CEND}"
 +
    if [ "${dbinstallmethod}" == "1" ]; then
 +
      rm -rf mysql-${mysql55_ver}-*-${SYS_BIT_b}
 +
    elif [ "${dbinstallmethod}" == "2" ]; then
 +
      rm -rf mysql-${mysql55_ver}
 +
    fi
 +
 +
  else
 +
  # rm -rf ${mysql_install_dir}
 +
    #echo "${CFAILURE}MySQL install failed, Please contact the author! ${CEND}"
 +
    kill -9 $$
 +
  fi
  
#比如安装常用的网络相关工具:
+
  /bin/cp ${mysql_install_dir}/support-files/mysql.server /etc/init.d/mysqld
 +
  sed -i "s@^basedir=.*@basedir=${mysql_install_dir}@" /etc/init.d/mysqld
 +
  sed -i "s@^datadir=.*@datadir=${mysql_data_dir}@" /etc/init.d/mysqld
 +
  chmod +x /etc/init.d/mysqld
 +
  [ "${PM}" == 'yum' ] && { chkconfig --add mysqld; chkconfig mysqld on; }
 +
  [ "${PM}" == 'apt-get' ] && update-rc.d mysqld defaults
 +
  popd
  
#更新软件包索引文件
+
  # my.cnf
 +
  cat > /etc/my.cnf << EOF
 +
[client]
 +
port = 3306
 +
socket = /tmp/mysql.sock
  
apk update   
+
[mysql]
 +
prompt="MySQL [\\d]> "
 +
no-auto-rehash
  
#用于文本方式查看网页,用于测试http协议
+
[mysqld]
 +
port = 3306
 +
socket = /tmp/mysql.sock
  
apk add curl 
+
basedir = ${mysql_install_dir}
 +
datadir = ${mysql_data_dir}
 +
pid-file = ${mysql_data_dir}/mysql.pid
 +
user = mysql
 +
bind-address = 0.0.0.0
 +
server-id = 1
  
#提供了查看网络连接的协议端口的命令ss,可以替代netstat命令
+
init-connect = 'SET NAMES utf8mb4'
 +
character-set-server = utf8mb4
  
apk add iproute2 
+
skip-name-resolve
 +
#skip-networking
 +
back_log = 300
  
#drill 命令可以替代dig和nslookup DNS查询命令
+
max_connections = 1000
 +
max_connect_errors = 6000
 +
open_files_limit = 65535
 +
table_open_cache = 128
 +
max_allowed_packet = 500M
 +
binlog_cache_size = 1M
 +
max_heap_table_size = 8M
 +
tmp_table_size = 16M
  
apk add drill 
+
read_buffer_size = 2M
 +
read_rnd_buffer_size = 8M
 +
sort_buffer_size = 8M
 +
join_buffer_size = 8M
 +
key_buffer_size = 4M
  
alpine:~# df -h
+
thread_cache_size = 8
Filesystem                Size      Used Available Use% Mounted on
 
devtmpfs                10.0M        0    10.0M  0% /dev
 
shm                    245.0M        0    245.0M  0% /dev/shm
 
/dev/sda3                29.4G    576.7M    27.3G  2% /
 
tmpfs                    49.0M    108.0K    48.9M  0% /run
 
/dev/sda1                92.8M    19.1M    66.8M  22% /boot
 
</pre>
 
=Alpine Linux 包管理=
 
  
<pre>
+
query_cache_type = 1
 +
query_cache_size = 8M
 +
query_cache_limit = 2M
  
5.apk info
+
ft_min_word_len = 4
$ apk info #列出所有已安装的软件包
 
$ apk info -a zlib #显示完整的软件包信息
 
$ apk info --who-owns /sbin/lbu #显示指定文件属于的包
 
</pre>
 
  
 +
log_bin = mysql-bin
 +
binlog_format = mixed
 +
expire_logs_days = 7
  
=on vps =
+
log_error = ${mysql_data_dir}/mysql-error.log
my.vultr.com  ISO Library  has apline 3.8
+
slow_query_log = 1
也可以自己上传
+
long_query_time = 1
 
+
slow_query_log_file = ${mysql_data_dir}/mysql-slow.log
[https://wiki.alpinelinux.org/wiki/Bootstrapping_Alpine_Linux Bootstrapping Alpine Linux - Alpine Linux]
 
 
 
[https://discuss.vultr.com/discussion/1033/custom-iso-alpinelinux custom-iso-alpinelinux]
 
 
 
[https://www.linode.com/docs/tools-reference/custom-kernels-distros/install-alpine-linux-on-your-linode/ Install Alpine Linux on your Linode]
 
 
 
=docker=
 
<pre>
 
cat  /etc/apk/repositories
 
 
 
http://mirrors.aliyun.com/alpine/v3.10/main
 
http://mirrors.aliyun.com/alpine/v3.10/community
 
  
 +
performance_schema = 0
  
apk add docker
+
#lower_case_table_names = 1
  
rc-update add docker boot
+
skip-external-locking
  
service docker start
+
default_storage_engine = InnoDB
 +
innodb_file_per_table = 1
 +
innodb_open_files = 500
 +
innodb_buffer_pool_size = 64M
 +
innodb_write_io_threads = 4
 +
innodb_read_io_threads = 4
 +
innodb_thread_concurrency = 0
 +
innodb_purge_threads = 1
 +
innodb_flush_log_at_trx_commit = 2
 +
innodb_log_buffer_size = 2M
 +
innodb_log_file_size = 32M
 +
innodb_log_files_in_group = 3
 +
innodb_max_dirty_pages_pct = 90
 +
innodb_lock_wait_timeout = 120
  
apk add py-pip
+
bulk_insert_buffer_size = 8M
apk add python-dev libffi-dev openssl-dev gcc libc-dev make
+
myisam_sort_buffer_size = 8M
 +
myisam_max_sort_file_size = 10G
 +
myisam_repair_threads = 1
  
 +
interactive_timeout = 28800
 +
wait_timeout = 28800
  
mkdir -p ~/.pip
+
[mysqldump]
 +
quick
 +
max_allowed_packet = 500M
  
#vim  ~/.pip/pip.conf
+
[myisamchk]
cat >>~/.pip/pip.conf<<EOF
+
key_buffer_size = 8M
[global]
+
sort_buffer_size = 8M
index-url = http://mirrors.aliyun.com/pypi/simple/
+
read_buffer = 4M
+
write_buffer = 4M
[install]
 
trusted-host=mirrors.aliyun.com
 
 
EOF
 
EOF
  
pip install more-itertools==5.0.0 #3.10.3
+
  sed -i "s@max_connections.*@max_connections = $((${Mem}/3))@" /etc/my.cnf
 
+
  if [ ${Mem} -gt 1500 -a ${Mem} -le 2500 ]; then
pip install docker-compose
+
    sed -i 's@^thread_cache_size.*@thread_cache_size = 16@' /etc/my.cnf
 
+
    sed -i 's@^query_cache_size.*@query_cache_size = 16M@' /etc/my.cnf
 
+
    sed -i 's@^myisam_sort_buffer_size.*@myisam_sort_buffer_size = 16M@' /etc/my.cnf
#err 
+
    sed -i 's@^key_buffer_size.*@key_buffer_size = 16M@' /etc/my.cnf
 
+
    sed -i 's@^innodb_buffer_pool_size.*@innodb_buffer_pool_size = 128M@' /etc/my.cnf
100% |████████████████████████████████| 81kB 1.2MB/s  
+
    sed -i 's@^tmp_table_size.*@tmp_table_size = 32M@' /etc/my.cnf
more-itertools requires Python '>=3.5' but the running Python is 2.7.16
+
    sed -i 's@^table_open_cache.*@table_open_cache = 256@' /etc/my.cnf
 
+
  elif [ ${Mem} -gt 2500 -a ${Mem} -le 3500 ]; then
</pre>
+
    sed -i 's@^thread_cache_size.*@thread_cache_size = 32@' /etc/my.cnf
 
+
    sed -i 's@^query_cache_size.*@query_cache_size = 32M@' /etc/my.cnf
https://wiki.alpinelinux.org/wiki/Docker
+
    sed -i 's@^myisam_sort_buffer_size.*@myisam_sort_buffer_size = 32M@' /etc/my.cnf
 +
    sed -i 's@^key_buffer_size.*@key_buffer_size = 64M@' /etc/my.cnf
 +
    sed -i 's@^innodb_buffer_pool_size.*@innodb_buffer_pool_size = 512M@' /etc/my.cnf
 +
    sed -i 's@^tmp_table_size.*@tmp_table_size = 64M@' /etc/my.cnf
 +
    sed -i 's@^table_open_cache.*@table_open_cache = 512@' /etc/my.cnf
 +
 +
  elif [ ${Mem} -gt 3500 ]; then
 +
    sed -i 's@^thread_cache_size.*@thread_cache_size = 64@' /etc/my.cnf
 +
    sed -i 's@^query_cache_size.*@query_cache_size = 64M@' /etc/my.cnf
 +
    sed -i 's@^myisam_sort_buffer_size.*@myisam_sort_buffer_size = 64M@' /etc/my.cnf
 +
    sed -i 's@^key_buffer_size.*@key_buffer_size = 256M@' /etc/my.cnf
 +
    sed -i 's@^innodb_buffer_pool_size.*@innodb_buffer_pool_size = 1024M@' /etc/my.cnf
 +
    sed -i 's@^tmp_table_size.*@tmp_table_size = 128M@' /etc/my.cnf
 +
    sed -i 's@^table_open_cache.*@table_open_cache = 1024@' /etc/my.cnf
 +
  fi
  
=trouble shooting=
+
  ${mysql_install_dir}/scripts/mysql_install_db --user=mysql --basedir=${mysql_install_dir} --datadir=${mysql_data_dir}
==alpine镜像crontab无法运行问题 ==
 
  
alpine镜像 普通用户 crontab无法运行问题
+
echo 'export PATH=/home/apps/mysql/bin/:$PATH' >> /etc/profile && source /etc/profile
  
crond 服务用 root用户启动   or on ci  docker-compose exec -u  root  -T php-worker  sh -c "crond"
+
   [ "${Wsl}" == true ] && chmod 600 /etc/my.cnf
 +
  chown mysql.mysql -R ${mysql_data_dir}
 +
  [ -d "/etc/mysql" ] && /bin/mv /etc/mysql{,_bk}
 +
  service mysqld start
 +
  #[ -z "$(grep ^'export PATH=' /etc/profile)" ] && echo "export PATH=${mysql_install_dir}/bin:\$PATH" >> /etc/profile
 +
  #[ -n "$(grep ^'export PATH=' /etc/profile)" -a -z "$(grep ${mysql_install_dir} /etc/profile)" ] && sed -i "s@^export PATH=\(.*\)@export PATH=${mysql_install_dir}/bin:\1@" /etc/profile
 +
  . /etc/profile
  
 +
dbrootpwd=1234Kuycs886Q
  
如果用官方提供alpine镜像是不自动启动crond的,得手动起
+
  ${mysql_install_dir}/bin/mysql -e "grant all privileges on *.* to root@'127.0.0.1' identified by \"${dbrootpwd}\" with grant option;"
每个用户有单独的文件在/etc/crontabs文件夹
+
  ${mysql_install_dir}/bin/mysql -e "grant all privileges on *.* to root@'localhost' identified by \"${dbrootpwd}\" with grant option;"
可以用supervisor启动crond,但要用root用户去启动crond,运行其他用户的定时任务
+
  ${mysql_install_dir}/bin/mysql -uroot -p${dbrootpwd} -e "delete from mysql.user where Password='';"
 +
  ${mysql_install_dir}/bin/mysql -uroot -p${dbrootpwd} -e "delete from mysql.db where User='';"
 +
  ${mysql_install_dir}/bin/mysql -uroot -p${dbrootpwd} -e "delete from mysql.proxies_priv where Host!='localhost';"
 +
  ${mysql_install_dir}/bin/mysql -uroot -p${dbrootpwd} -e "drop database test;"
 +
  ${mysql_install_dir}/bin/mysql -uroot -p${dbrootpwd} -e "reset master;"
 +
  rm -rf /etc/ld.so.conf.d/{mysql,mariadb,percona,alisql}*.conf
 +
  [ -e "${mysql_install_dir}/my.cnf" ] && rm -f ${mysql_install_dir}/my.cnf
 +
  echo "${mysql_install_dir}/lib" > /etc/ld.so.conf.d/z-mysql.conf
 +
  ldconfig
 +
  service mysqld stop
 +
}
  
cron itself should run as root, regardless of which user you want to use to run the jobs.
 
  
This will install a crontab for user robuser. When cron executes jobs from this particular crontab, it will automatically switch users to robuser. However, cron can’t switch users like that if it’s not running as root, which is why you need to be running cron as root.
 
  
 +
##提示的
 +
/home/apps/mysql/bin/mysqladmin -u root password 'new-password'
 +
/home/apps/mysql/bin/mysqladmin -u root -h 10.3.10.139
 +
172.23.11.139 password 'new-password'
  
crontab  -l
+
Alternatively you can run:
crontab: must be suid to work properly
+
/home/apps/mysql/bin/mysql_secure_installation
  
apk add --update busybox-suid
 
 
=ops=
 
 
[[Alpine 修改docker的时区及安装telnet]]
 
 
<pre>
 
apk  add rsync
 
 
</pre>
 
</pre>
  
=desktop=
 
暂时没有中文输入法
 
 
[https://www.cnblogs.com/jinzhenshui/p/8418281.html Alpine Linux:如何配置GUI的图形桌面环境:x Desktop Environment]
 
 
[https://blog.csdn.net/weixin_30590285/article/details/95415847 Alpine Linux:如何配置GUI的图形桌面环境:x Desktop Environment]
 
 
[https://wiki.alpinelinux.org/wiki/MATE MATE 桌面]
 
 
[https://wiki.alpinelinux.org/wiki/Awesome(wm)_Setup Awesome桌面]
 
 
[https://liyin.date/2017/03/18/alpine-linux-setup/ 折腾记]
 
 
 
[https://icoolworld.github.io/alpine/alpine-%E4%B8%AD%E6%96%87%E6%88%AA%E5%9B%BE%E4%B9%B1%E7%A0%81%E9%97%AE%E9%A2%98.html alpine-中文截图乱码问题]
 
 
=问题=
 
Alpine Linux使用了musl,可能和其他Linux发行版使用的glibc实现会有所不同。在容器化中最可能遇到的是DNS问题,即musl实现的DNS服务不会使用resolv.conf文件中的search和domain两个配置,这对于一些通过DNS来进行服务发现的框架可能会遇到问题
 
 
[https://www.wencst.com/2017/11/23/docker-alpine%E7%89%88%E6%9C%AC%E6%9C%8D%E5%8A%A1%E4%B8%AD%E6%98%BE%E7%A4%BA%E4%B8%AD%E6%96%87/ docker alpine版本服务中显示中文]
 
  
 
=see also=
 
=see also=
 
+
http://dev.mysql.com/doc/refman/5.5/en/installing.html
 
 
 
 
[https://www.cnblogs.com/jackadam/p/9290366.html Alpine Linux常用命令]
 
 
 
[https://blog.csdn.net/CSDN_duomaomao/article/details/76053229 Alpine linux硬盘安装]
 
 
 
[https://blog.csdn.net/CSDN_duomaomao/article/details/76152416 Alpine Linux 使用]
 
 
 
[http://mirrors.ustc.edu.cn/help/alpine.html Alpine Linux 源使用帮助]
 
 
 
[http://www.10tiao.com/html/357/201702/2247484888/1.html Alpine Linux配置使用技巧]
 
 
 
[http://blog.csdn.net/csdn_duomaomao/article/details/76053229 Alpine linux硬盘安装]
 
 
 
[https://zh.wikipedia.org/wiki/BusyBox BusyBox]
 
 
 
 
 
==Raspberry Pi==
 
[https://a-delacruz.github.io/alpine/alpine-linux.html Raspberry Pi 3 Alpine Linux arm64]
 
 
 
[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Raspberry Pi]
 
==other==
 
[https://blog.csdn.net/diyiday/article/details/78332924 alpine linux填坑之路安装php-bcmath]
 
 
 
[https://blog.csdn.net/freewebsys/article/details/53816615 docker(13):alpinelinux安装jenkins]
 
 
 
[http://www.infoq.com/cn/news/2016/01/Alpine-Linux-5M-Docker Alpine Linux,一个只有5M的Docker镜像]
 
 
 
 
 
 
 
[[category:ops]]
 

2020年8月26日 (三) 10:11的版本


binary install

#!/bin/bash
# Author:  linuxsa.org
# BLOG: 


mysql_install_dir=/home/apps/mysql 
mysql_data_dir=/home/apps/mysql/data
Mem=`free -m | awk '/Mem:/{print $2}'`

Install_MySQL55() {
  #pushd ${oneinstack_dir}/src > /dev/null
  #id -u mysql >/dev/null 2>&1
  [ $? -ne 0 ] && useradd -M -s /sbin/nologin mysql

  [ ! -d "${mysql_install_dir}" ] && mkdir -p ${mysql_install_dir}
  

  #if [ "${dbinstallmethod}" == "1" ]; then
    #tar xzf mysql-${mysql55_ver}-linux-glibc2.12-${SYS_BIT_b}.tar.gz
	tar xvf  mysql-5.5.62-linux-glibc2.12-x86_64.tar.gz

    #mv mysql-${mysql55_ver}-linux-glibc2.12-${SYS_BIT_b}/* ${mysql_install_dir}
	mv  mysql-5.5.62-linux-glibc2.12-x86_64/*  ${mysql_install_dir}
	
	mkdir -p ${mysql_data_dir};chown mysql.mysql -R ${mysql_data_dir}
	
	#这个没执行
    #sed -i 's@executing mysqld_safe@executing mysqld_safe\nexport LD_PRELOAD=/usr/local/lib/libjemalloc.so@' ${mysql_install_dir}/bin/mysqld_safe 
    sed -i "s@/usr/local/mysql@${mysql_install_dir}@g" ${mysql_install_dir}/bin/mysqld_safe
	

#这个是源码的 跳过	
  elif [ "${dbinstallmethod}" == "2" ]; then
    tar xzf mysql-${mysql55_ver}.tar.gz
    pushd mysql-${mysql55_ver}
    [ "${armplatform}" == "y" ] && patch -p1 < ../mysql-5.5-fix-arm-client_plugin.patch
    cmake . -DCMAKE_INSTALL_PREFIX=${mysql_install_dir} \
    -DMYSQL_DATADIR=${mysql_data_dir} \
    -DSYSCONFDIR=/etc \
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    -DWITH_PARTITION_STORAGE_ENGINE=1 \
    -DWITH_FEDERATED_STORAGE_ENGINE=1 \
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
    -DWITH_MYISAM_STORAGE_ENGINE=1 \
    -DWITH_READLINE=1 \
    -DWITH_EMBEDDED_SERVER=1 \
    -DENABLE_DTRACE=0 \
    -DENABLED_LOCAL_INFILE=1 \
    -DDEFAULT_CHARSET=utf8mb4 \
    -DDEFAULT_COLLATION=utf8mb4_general_ci \
    -DEXTRA_CHARSETS=all \
    -DCMAKE_EXE_LINKER_FLAGS='-ljemalloc'
    make -j ${THREAD}
    make install
    popd
  fi

#这个if 不成理 
  if [ -d "${mysql_install_dir}/support-files" ]; then
    #sed -i "s+^dbrootpwd.*+dbrootpwd='${dbrootpwd}'+" ../options.conf
    echo "${CSUCCESS}MySQL installed successfully! ${CEND}"
    if [ "${dbinstallmethod}" == "1" ]; then
      rm -rf mysql-${mysql55_ver}-*-${SYS_BIT_b}
    elif [ "${dbinstallmethod}" == "2" ]; then
      rm -rf mysql-${mysql55_ver}
    fi
	
  else
   # rm -rf ${mysql_install_dir}
    #echo "${CFAILURE}MySQL install failed, Please contact the author! ${CEND}"
    kill -9 $$
  fi

  /bin/cp ${mysql_install_dir}/support-files/mysql.server /etc/init.d/mysqld
  sed -i "s@^basedir=.*@basedir=${mysql_install_dir}@" /etc/init.d/mysqld
  sed -i "s@^datadir=.*@datadir=${mysql_data_dir}@" /etc/init.d/mysqld
  chmod +x /etc/init.d/mysqld
  [ "${PM}" == 'yum' ] && { chkconfig --add mysqld; chkconfig mysqld on; }
  [ "${PM}" == 'apt-get' ] && update-rc.d mysqld defaults
  popd

  # my.cnf
  cat > /etc/my.cnf << EOF
[client]
port = 3306
socket = /tmp/mysql.sock

[mysql]
prompt="MySQL [\\d]> "
no-auto-rehash

[mysqld]
port = 3306
socket = /tmp/mysql.sock

basedir = ${mysql_install_dir}
datadir = ${mysql_data_dir}
pid-file = ${mysql_data_dir}/mysql.pid
user = mysql
bind-address = 0.0.0.0
server-id = 1

init-connect = 'SET NAMES utf8mb4'
character-set-server = utf8mb4

skip-name-resolve
#skip-networking
back_log = 300

max_connections = 1000
max_connect_errors = 6000
open_files_limit = 65535
table_open_cache = 128
max_allowed_packet = 500M
binlog_cache_size = 1M
max_heap_table_size = 8M
tmp_table_size = 16M

read_buffer_size = 2M
read_rnd_buffer_size = 8M
sort_buffer_size = 8M
join_buffer_size = 8M
key_buffer_size = 4M

thread_cache_size = 8

query_cache_type = 1
query_cache_size = 8M
query_cache_limit = 2M

ft_min_word_len = 4

log_bin = mysql-bin
binlog_format = mixed
expire_logs_days = 7

log_error = ${mysql_data_dir}/mysql-error.log
slow_query_log = 1
long_query_time = 1
slow_query_log_file = ${mysql_data_dir}/mysql-slow.log

performance_schema = 0

#lower_case_table_names = 1

skip-external-locking

default_storage_engine = InnoDB
innodb_file_per_table = 1
innodb_open_files = 500
innodb_buffer_pool_size = 64M
innodb_write_io_threads = 4
innodb_read_io_threads = 4
innodb_thread_concurrency = 0
innodb_purge_threads = 1
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 2M
innodb_log_file_size = 32M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120

bulk_insert_buffer_size = 8M
myisam_sort_buffer_size = 8M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1

interactive_timeout = 28800
wait_timeout = 28800

[mysqldump]
quick
max_allowed_packet = 500M

[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
read_buffer = 4M
write_buffer = 4M
EOF

  sed -i "s@max_connections.*@max_connections = $((${Mem}/3))@" /etc/my.cnf
  if [ ${Mem} -gt 1500 -a ${Mem} -le 2500 ]; then
    sed -i 's@^thread_cache_size.*@thread_cache_size = 16@' /etc/my.cnf
    sed -i 's@^query_cache_size.*@query_cache_size = 16M@' /etc/my.cnf
    sed -i 's@^myisam_sort_buffer_size.*@myisam_sort_buffer_size = 16M@' /etc/my.cnf
    sed -i 's@^key_buffer_size.*@key_buffer_size = 16M@' /etc/my.cnf
    sed -i 's@^innodb_buffer_pool_size.*@innodb_buffer_pool_size = 128M@' /etc/my.cnf
    sed -i 's@^tmp_table_size.*@tmp_table_size = 32M@' /etc/my.cnf
    sed -i 's@^table_open_cache.*@table_open_cache = 256@' /etc/my.cnf
  elif [ ${Mem} -gt 2500 -a ${Mem} -le 3500 ]; then
    sed -i 's@^thread_cache_size.*@thread_cache_size = 32@' /etc/my.cnf
    sed -i 's@^query_cache_size.*@query_cache_size = 32M@' /etc/my.cnf
    sed -i 's@^myisam_sort_buffer_size.*@myisam_sort_buffer_size = 32M@' /etc/my.cnf
    sed -i 's@^key_buffer_size.*@key_buffer_size = 64M@' /etc/my.cnf
    sed -i 's@^innodb_buffer_pool_size.*@innodb_buffer_pool_size = 512M@' /etc/my.cnf
    sed -i 's@^tmp_table_size.*@tmp_table_size = 64M@' /etc/my.cnf
    sed -i 's@^table_open_cache.*@table_open_cache = 512@' /etc/my.cnf
	
  elif [ ${Mem} -gt 3500 ]; then
    sed -i 's@^thread_cache_size.*@thread_cache_size = 64@' /etc/my.cnf
    sed -i 's@^query_cache_size.*@query_cache_size = 64M@' /etc/my.cnf
    sed -i 's@^myisam_sort_buffer_size.*@myisam_sort_buffer_size = 64M@' /etc/my.cnf
    sed -i 's@^key_buffer_size.*@key_buffer_size = 256M@' /etc/my.cnf
    sed -i 's@^innodb_buffer_pool_size.*@innodb_buffer_pool_size = 1024M@' /etc/my.cnf
    sed -i 's@^tmp_table_size.*@tmp_table_size = 128M@' /etc/my.cnf
    sed -i 's@^table_open_cache.*@table_open_cache = 1024@' /etc/my.cnf
  fi

  ${mysql_install_dir}/scripts/mysql_install_db --user=mysql --basedir=${mysql_install_dir} --datadir=${mysql_data_dir}

echo 'export PATH=/home/apps/mysql/bin/:$PATH' >> /etc/profile && source /etc/profile

  [ "${Wsl}" == true ] && chmod 600 /etc/my.cnf
  chown mysql.mysql -R ${mysql_data_dir}
  [ -d "/etc/mysql" ] && /bin/mv /etc/mysql{,_bk}
  service mysqld start
  #[ -z "$(grep ^'export PATH=' /etc/profile)" ] && echo "export PATH=${mysql_install_dir}/bin:\$PATH" >> /etc/profile
  #[ -n "$(grep ^'export PATH=' /etc/profile)" -a -z "$(grep ${mysql_install_dir} /etc/profile)" ] && sed -i "s@^export PATH=\(.*\)@export PATH=${mysql_install_dir}/bin:\1@" /etc/profile
  . /etc/profile

dbrootpwd=1234Kuycs886Q

  ${mysql_install_dir}/bin/mysql -e "grant all privileges on *.* to root@'127.0.0.1' identified by \"${dbrootpwd}\" with grant option;"
  ${mysql_install_dir}/bin/mysql -e "grant all privileges on *.* to root@'localhost' identified by \"${dbrootpwd}\" with grant option;"
  ${mysql_install_dir}/bin/mysql -uroot -p${dbrootpwd} -e "delete from mysql.user where Password='';"
  ${mysql_install_dir}/bin/mysql -uroot -p${dbrootpwd} -e "delete from mysql.db where User='';"
  ${mysql_install_dir}/bin/mysql -uroot -p${dbrootpwd} -e "delete from mysql.proxies_priv where Host!='localhost';"
  ${mysql_install_dir}/bin/mysql -uroot -p${dbrootpwd} -e "drop database test;"
  ${mysql_install_dir}/bin/mysql -uroot -p${dbrootpwd} -e "reset master;"
  rm -rf /etc/ld.so.conf.d/{mysql,mariadb,percona,alisql}*.conf
  [ -e "${mysql_install_dir}/my.cnf" ] && rm -f ${mysql_install_dir}/my.cnf
  echo "${mysql_install_dir}/lib" > /etc/ld.so.conf.d/z-mysql.conf
  ldconfig
  service mysqld stop
}



##提示的
/home/apps/mysql/bin/mysqladmin -u root password 'new-password'
/home/apps/mysql/bin/mysqladmin -u root -h 10.3.10.139
172.23.11.139 password 'new-password'

Alternatively you can run:
/home/apps/mysql/bin/mysql_secure_installation


see also

http://dev.mysql.com/doc/refman/5.5/en/installing.html