rpm方式安装mysql

1、下载安装包

测试环境

介质 版本
操作系统 Red Hat Enterprise Linux Server release 6.8 (Santiago)
数据库 MySQL-5.6.30

下载rpm安装包和xtrabackup备份工具安装包。

以root用户登录

# mkdir  -p /root/mysql

# cd /root/mysql

# wget -c --ftp-user=ftp --ftp-password=ftp ftp://172.16.82.254/pub/installpkg/database/mysql/MySQL-5.6.30-1.rhel5.x86_64.rpm-bundle.tar

# wget -c --ftp-user=ftp --ftp-password=ftp ftp://172.16.82.254/pub/installpkg/database/mysql/xtrabackup-2.3.3.tar.gz

2、环境配置

删除MyQL-libs包。

(RedHat6.7服务器自带的mysql-libs是mysql-libs-5.1.61-4.el6.x86_64,可能会和高版本的mysql-libs有冲突)

#yum list |grep mysql
#yum remove mysql-libs*

3、开始安装

# cd /root/mysql
# tar -xvf  MySQL-5.6.30-1.rhel5.x86_64.rpm-bundle.tar
# rpm -ivh  MySQL-server-5.6.30-1.rhel5.x86_64.rpm
# rpm -ivh  MySQL-client-5.6.30-1.rhel5.x86_64.rpm
(shared-compat包为xtrabackup依赖)
# rpm -ivh  MySQL-shared-compat-5.6.30-1.rhel5.x86_64.rpm

4、启停服务

# service mysql start
# service mysql stop

查看服务状态

# service mysql status
 SUCCESS! MySQL running (10899)
# ps -ef |grep mysql
root     10639     1  0 Apr10 ?        00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/u01/app/mysql/data/mysql3306/data --pid-file=/u01/app/mysql/data/mysql3306/data/cs-db-05.pid
mysql    10899 10639  0 Apr10 ?        00:01:19 /usr/sbin/mysqld --basedir=/usr --datadir=/u01/app/mysql/data/mysql3306/data --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/u01/app/mysql/data/mysql3306/data/cs-db-05.err --pid-file=/u01/app/mysql/data/mysql3306/data/cs-db-05.pid --socket=/u01/app/mysql/data/mysql3306/run/mysql.sock

其中mysqld_safe为root启动,为mysql服务的守护进程,监控mysql运行,若mysql进程故障可能会重启mysql进程。
mysqld进程为mysql启动,为mysql服务进程,mysql为单进程多线程设计,因此主服务只有这一个进程。
因为该进程为mysql用户启动,故mysql的数据目录需要给mysql用户所有权限。(后续迁移datadir需注意)

5、更改root用户密码

查看系统初始化root密码
#  more /root/.mysql_secret 
# The random password set for the root user at Mon Oct  9 16:45:47 2017 (local time): g8XenJIjEe4MvITl

更改root用户密码
# mysql -u root -p
Enter password: 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> SET PASSWORD = PASSWORD('niwodai#2017');
Query OK, 0 rows affected (0.00 sec)
mysql>  flush privileges;
Query OK, 0 rows affected (0.00 sec)

6、创建新数据库及用户

创建数据库,名字为forum
mysql> create schema wjf default character set utf8 collate utf8_general_ci;
创建用户
mysql> create user 'wjf'@'%' identified by 'wjf_pwd';
刷新权限生效
mysql> flush  privileges ;

7、rpm方式安装默认路径说明

查看参数方式

mysql> show variables like '%dir%';

默认参数设置

basedir: /usr

相当于oracle的ORACLE_HOME,放置目录bin、share、my.cnf配置文件等。

datadir:/var/lib/mysql

存放数据文件的目录,比如系统表空间,创建的数据库等都放在该目录。

my.cnf配置文件: /usr/

mysql的主要配置文件,默认放在该目录下。mysql读取配置文件有一个顺序,类似linux中shell环境变量的配置顺序一样,后读文件配置覆盖前面文件中的参数配置。具体顺序可以使用以下命令查看。

# mysql --help |grep my.cnf
                      order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf 

8、迁移datadir

迁移datadir到/data/mysql/

创建目录
# mkdir -p /data/mysql/
停止服务
# service mysql stop
拷贝原datadir下内容到新的datadir下。
# cp -R /var/lib/mysql/* /data/mysql/
修改目录权限
#chown -R mysql:mysql /data/
修改my.cnf配置。
# mv /usr/my.cnf /etc/
# vi /etc/my.cnf
#增加如下内容(其他调整内容参见最后 10、参数配置  章节)
[mysqld]
datadir=/data/mysql/
启动服务
#service mysql start

9、安装xtrabackup备份工具

安装依赖包
# cd /root/mysql
# tar -xvzf xtrabackup-2.3.3.tar.gz
# cd /root/mysql/xtrabackup
# rpm -ivh libev-4.15-1.el5.rf.x86_64.rpm
# yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL rsync

安装备份软件
# rpm -ivh percona-xtrabackup-2.3.3-1.el6.x86_64.rpm

10、参数配置

vi /etc/my.cnf
#参考文档:https://github.com/jdaaaaaavid/mysql_best_configuration
#mysqld部分修改为如下内容
[mysqld]
# basic settings #
user = mysql
sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER"
autocommit = 1
server-id = 8888
character_set_server=utf8mb4
datadir=/data/mysql/
transaction_isolation = READ-COMMITTED
explicit_defaults_for_timestamp = 1
max_allowed_packet = 64M
event_scheduler = 1

# connection #
interactive_timeout = 1800
wait_timeout = 1800
lock_wait_timeout = 1800
skip_name_resolve = 1
max_connections = 1024
max_user_connections = 512
max_connect_errors = 1000000

# table cache performance settings
table_open_cache = 2048
table_open_cache_instances = 16

# session memory settings #
read_buffer_size = 16M 
###(内存大小(单位G)/16 单位M)进行设置,如16G内存设置为1M
read_rnd_buffer_size = 32M
###(内存大小/8)M
sort_buffer_size = 32M
###(内存大小/8)M
tmp_table_size = 64M
###(内存大小/4)M
join_buffer_size = 128M
###(内存大小/2)M
thread_cache_size = 64

# log settings #
log_error = error.log
log_bin = binlog
general_log_file = general.log
slow_query_log = 1
slow_query_log_file = slow.log
log_queries_not_using_indexes = 1
log_slow_admin_statements = 1
log_slow_slave_statements = 1
log_throttle_queries_not_using_indexes = 10
expire_logs_days = 10
long_query_time = 5
min_examined_row_limit = 100
log-bin-trust-function-creators = 1
log-slave-updates = 1

# innodb settings #
innodb_page_size = 16384
innodb_buffer_pool_size = 160G
###(内存大小 * 0.6)
innodb_buffer_pool_instances = 16
### (CPU数 / 2)
innodb_buffer_pool_load_at_startup = 1
innodb_buffer_pool_dump_at_shutdown = 1
innodb_lru_scan_depth = 4096
innodb_lock_wait_timeout = 5
innodb_io_capacity = 5000
###ssd:5000,(SAS*12 RAID 10):2000,单盘SAS:200
innodb_io_capacity_max = 10000
###innodb_io_capacity * 2
innodb_flush_method = O_DIRECT
innodb_undo_logs = 128
innodb_flush_neighbors = 0
innodb_log_file_size = 16G
###(内存大小 * 0.06)
innodb_log_files_in_group = 2
innodb_log_buffer_size = 64M
###(内存大小/4)M
innodb_purge_threads = 4
innodb_large_prefix = 1
innodb_print_all_deadlocks = 1
innodb_strict_mode = 1
innodb_sort_buffer_size = 128M
###(内存大小/2)M
innodb_write_io_threads = 16
###(CPU数 / 2)
innodb_read_io_threads = 16 
###(CPU数 / 2)
innodb_file_per_table = 1
innodb_online_alter_log_max_size=1G
innodb_open_files=2048

# replication settings #
master_info_repository = TABLE
relay_log_info_repository = TABLE
sync_binlog = 1
enforce_gtid_consistency = 1
log_slave_updates
binlog_format = ROW
binlog_rows_query_log_events = 1
relay_log = relay.log
relay_log_recovery = 1
slave_skip_errors = ddl_exist_errors
slave-rows-search-algorithms = 'INDEX_SCAN,HASH_SCAN'


# perforamnce_schema settings
performance-schema-instrument='memory/%=COUNTED'
performance_schema_digests_size = 40000
performance_schema_max_table_instances = 40000
performance_schema_max_digest_length = 4096


猜你喜欢

转载自blog.csdn.net/wang1016612067/article/details/80165552