mysql一共有四种安装方式
绿色安装部署
groupadd mysql && useradd -g mysql mysql -s /sbin/nologin
yum -y install libaio* numactl*
wget
https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
tar xvf mv mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz && mv mysql-5.7.25-linux-glibc2.12-x86_64 /user/local/mysql
/usr/local/mysql/bin/mysqld --initialize --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql --explicit_defaults_for_timestamp=true --user=mysql
cp -rf /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
cat >/etc/my.cnf <<EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
log-error=/usr/local/mysql/logs/mariadb.log
port = 3306
socket = /tmp/mysql.sock
[client]
port = 3306
socket = /tmp/mysql.sock
EOF
/etc/init.d/mysqld start
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile
yum安装部署
yum -y install mysql mysql-server mysql-devel
chkconfig --add mysqld
yum -y install mariadb maridb-server
systemctl enable mariadb
源码安装部署
cat /tmp/mysq_install.sh
mysql_dir="/usr/local/mysql"
mysql_package="mysql-5.7.25.tar.gz"
mysql_data="/usr/local/mysql/data"
port=3306
cpu=$(cat /proc/cpuinfo |grep "processor"|wc -l)
Free=`expr $i / 5 + $i / 2`
groupadd -g 701 mysql
useradd -M -g mysql -u 1101 -s /sbin/nologin mysql
yum -y install gcc gcc-c++ cmake make openssl-devel libaio bison perl perl-devel ncurses-devel
tar xvf ${mysql_package}
mysql_package=$(echo ${mysql_package}|awk -F '.tar' '{print $1}')
cd $mysql_package && cmake -DCMAKE_INSTALL_PREFIX=${mysql_dir} -DDEAULT_CHARSET=utf8 -DEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_USER=mysql && make -j${cpu} && make install && cd -
echo "PATH=$PATH:${mysql_dir}/bin" >> /etc/profile
source /etc/profile
${mysql_dir}/scripts/mysql_install_db --basedir=${mysql_dir} --datadir=${mysql_data} --user=mysql --group=mysql
cp ${mysql_dir}/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chown -R mysql:mysql ${mysql_data}
mkdir -p /var/lib/mysql/
ln -s ${mysql_data}/mysql.sock /tmp/mysql.sock
rm -rf $mysql_package
cat > /etc/my.cnf << EOF
[client]
port =${port}
socket =${mysql_data}/mysql.sock
[mysql]
port = 3306
default-character-set =utf8
max_allowed_packet =1024M
socket =${mysql_data}/mysql.sock
#prompt ="\\u@\\h:\\d\\r:\\m:\\s>"
pager ="more"
[mysqld]
character-set-server =utf8
user =mysql
port =${port}
socket =${mysql_data}/mysql.sock
basedir =${mysql_dir}
datadir =${mysql_data}
pid-file =${mysql_data}/mysql.pid
####连接数优化####
back_log = 600
open_files_limit =65535
max_allowed_packet =1024M
max_connect_errors =50000
max_connections =2000
max_user_connections =2000
####表缓冲####
thread_cache_size =256
table_definition_cache =2048
####慢查询优化####
slow_query_log = ON
slow_query_log_file = ${mysql_data}/slow.log
long_query_time = 1
#####myisam####
concurrent_insert =2
key_buffer_size =256M
sort_buffer_size =100k
join_buffer_size =100K
read_buffer_size =100K
read_rnd_buffer_size =100K
myisam_sort_buffer_size =100M
####innodbplugin###
innodb_file_format =Barracuda
innodb_strict_mode =1
#innodb
default-storage-engine =INNODB
innodb_log_buffer_size =200M
innodb_log_file_size =256M
#innodb_buffer_pool_size 暂用内用的60到70###
innodb_buffer_pool_size =${Free}
innodb_max_dirty_pages_pct =60
innodb_flush_method =O_DIRECT
innodb_file_per_table =1
innodb_lock_wait_timeout =100
innodb_log_files_in_group =2
innodb_open_files =60000
###InnoDBIO cpu优化
innodb_write_io_threads =${cpu}
innodb_read_io_threads =${cpu}
innodb_flush_log_at_trx_commit =0
EOF
chkconfig mysqld on
/etc/init.d/mysqld restart
docker 部署
mkdir -p /usr/local/mysql/{data,conf}
cat /usr/local/mysql/conf/my.cnf
cat /usr/local/mysql/docker-compose.yaml
version: '3.1'
services:
mysql:
image: mysql:5.7
container_name: mysql57
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: "123456"
MYSQL_USER: 'root'
MYSQL_PASS: '123456'
volumes:
- /usr/local/mysql/data:/var/lib/mysql
- /usr/local/mysql/conf/my.cnf:/etc/my.cnf
restart: always
network_mode: "bridge"
docker-compose up -d