1.解压
mkdir /opt/mysql
mv mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz /opt/mysql/
cd /opt/mysql
tar -zxvf mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz
2.创建一个链接
cd /usr/local
ln -s /opt/mysql/mysql-5.7.16-linux-glibc2.5-x86_64 mysql
3.创建运行的用户
groupadd mysql
useradd -g mysql -d /usr/local/mysql -s /sbin/nologin -M -n mysql
4.创建所需要的目录
mkdir -p /data/mysql/3306/{data,logs,tmp}
5.修改权限
chown -R mysql:mysql /data/mysql/3306/
chown -R mysql:mysql /usr/local/mysql/
6,修改配置文件
vi /data/mysql/3306/my3306.cnf
#my.cnf
[client]
port = 3306
socket = /data/mysql/3306/tmp/3306.sock
[mysql]
prompt="\\[email protected]\\h:\\p [\\d]>"
#pager="less -i -n -S"
#tee=/opt/mysql/query.log
no-auto-rehash
[mysqld]
#misc
user = mysql
basedir = /usr/local/mysql
datadir = /data/mysql/3306/data
port = 3306
socket = /data/mysql/3306/tmp/3306.sock
event_scheduler = 0
tmpdir = /data/mysql/3306/tmp
#timeout
interactive_timeout = 300
wait_timeout = 300
#character set
character-set-server = utf8
open_files_limit = 65535
max_connections = 100
max_connect_errors = 100000
lower_case_table_names =1
#symi replication
#rpl_semi_sync_master_enabled=1
#rpl_semi_sync_master_timeout=1000 # 1 second
#rpl_semi_sync_slave_enabled=1
#logs
log-output=file
slow_query_log = 1
slow_query_log_file = slow.log
log-error = error.log
log_warnings = 2
pid-file = mysql.pid
long_query_time = 1
#log-slow-admin-statements = 1
#log-queries-not-using-indexes = 1
log-slow-slave-statements = 1
#binlog
#binlog_format = STATEMENT
binlog_format = row
server-id = 330627
log-bin = /data/mysql/3306/logs/mysql-bin
binlog_cache_size = 4M
max_binlog_size = 256M
max_binlog_cache_size = 1M
sync_binlog = 0
expire_logs_days = 10
#procedure
log_bin_trust_function_creators=1
#
#gtid-mode = on
#enforce-gtid-consistency=1
#relay log
skip_slave_start = 1
max_relay_log_size = 128M
relay_log_purge = 1
relay_log_recovery = 1
relay-log=relay-bin
relay-log-index=relay-bin.index
log_slave_updates
#slave-skip-errors=1032,1053,1062
#skip-grant-tables
#buffers & cache
table_open_cache = 2048
table_definition_cache = 2048
table_open_cache = 2048
max_heap_table_size = 96M
sort_buffer_size = 128K
join_buffer_size = 128K
thread_cache_size = 200
query_cache_size = 0
query_cache_type = 0
query_cache_limit = 256K
query_cache_min_res_unit = 512
thread_stack = 192K
tmp_table_size = 96M
key_buffer_size = 8M
read_buffer_size = 2M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 32M
#myisam
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
#innodb
innodb_buffer_pool_size = 100M
innodb_buffer_pool_instances = 1
innodb_data_file_path = ibdata1:100M:autoextend
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 8M
innodb_log_file_size = 100M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 50
innodb_file_per_table = 1
innodb_rollback_on_timeout
innodb_status_file = 1
innodb_io_capacity = 100
transaction_isolation = READ-COMMITTED
innodb_flush_method = O_DIRECT
7.初始化
chown mysql:mysql /data/mysql/3306/my3306.cnf
/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/3306/my3306.cnf --basedir=/usr/local/mysql --datadir=/data/mysql/3306/data --user=mysql --initialize
注意:--initilize 参数需要放在最后,--initialize会显示密码, --initialize-insecure 密码为空。
8.设置mysql变量
echo "export PATH=$PATH:/usr/local/mysql/bin">>/etc/profile
source /etc/profile
9.启动MySQL
mysqld --defaults-file=/data/mysql/3306/my3306.cnf &
10.修改密码
cat /data/mysql/3306/data/error.log |grep "password"
alter user user() identified by ‘oracle‘;
多实例安装
mkdir ./3307/{data,logs,tmp} -p
chown -R mysql:mysql 3307
cp ./3306/my3306.cnf ./3307/my3307.cnf
sed -i ‘s/3306/3307/g‘ ./3307/my3307.cnf
chown mysql:mysql /data/mysql/3307/my3307.cnf
/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/3307/my3307.cnf --basedir=/usr/local/mysql --datadir=/data/mysql/3307/data --user=mysql --initialize-insecure