安装数据库
创建mysql用户与组
/usr/sbin/groupadd mysql
/usr/sbin/useradd -g mysql mysql
创建mysql相关目录(软件目录、数据目录)
mkdir -p /usr/local/software/mysql
mkdir -p /usr/local/software/mysql/data
chown -R mysql:mysql /usr/local/software/mysql
chown -R mysql:mysql /usr/local/software/mysql/data
安装需要用到的库
yum -y install gcc gcc-c++
yum -y install libiao
yum -y install ncurses-devel
解压软件
cd /usr/local/software
tar -xvf mysql-5.5.45-linux2.6-x86_64.tar.gz
mv mysql-5.5.45-linux2.6-x86_64.tar.gz mysql
改变mysql目录权限
chown -R mysql:mysql /usr/local/software/mysql
配置运行环境
#vim /etc/my.cnf
export PATH=/usr/local/software/mysql/bin:/usr/local/software/mysql/lib:$PATH
source /etc/profile
初始化数据库
cd /usr/local/software/mysql
./scripts/mysql_install_db --basedir=/usr/local/software/mysql --datadir=/usr/local/software/mysql/data --user=mysql
启动mysql数据库
mysqld_safe --datadir=/usr/local/software/mysql/data &
查检是否启动成功
netstat -ntlp | grep mysql
设置root密码,执行以下命令
# mysqladmin -u root password 'root'
登陆账号
# mysql -uroot -proot
调整mysql配置文件
创建socket目录
mkdir -p /var/lib/mysql/
chown -R mysql:mysql /var/lib/mysql/
修改配置文件
#vim /etc/my.cnf
[client]
port = 3306
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[mysqld]
user = mysql
transaction-isolation = READ-COMMITTED
pid-file = /usr/local/software/mysql/data/db.pid
port = 3306
#设置为自己MYSQL的安装目录
basedir = /usr/local/software/mysql
#设置为MYSQL的数据目录
datadir = /usr/local/software/mysql/data
#设置MYSQL的临时目录
tmpdir = /tmp
#设置mysql表大小写不敏感
lower_case_table_names = 1
#默认注释,禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时间
skip_name_resolve
#MySQL客户端的数据库连接闲置最大时间值,由默认的8小时,修改为30分钟
wait_timeout = 1800
#接受所有的IPv4地址
bind-address = 0.0.0.0
#mysql收到的packet大于max_allowed_packet时,就会报错并且关闭连接
max_allowed_packet = 100M
#设置为MYSQL的错误日志文件
log_error = /usr/local/software/mysql/data/db.err
socket = /var/lib/mysql/mysql.sock
#back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。
back_log = 1024
#max_connections是指MySql的最大连接数
max_connections = 1024
#max_connect_errors是一个mysql中与安全有关的计数器值,它负责阻止过多尝试失败的客户端以防止暴力破解密码等情况
max_connect_errors = 60
#max_heap_table_size定义用户可以创建的内存表(memory table)的大小
max_heap_table_size = 256M
#open_files_limit描述mysql打开的文件系统描述符(默认最小1024)open_files_limit = table_open_cache*2 + innodb表
open_files_limit = 10240
#table_open_cache指定表高速缓存的大小
table_open_cache = 1024
#它规定了内部内存临时表的最大值,每个线程都要分配。
tmp_table_size = 256M
#key_buffer_size只对myisam表作用,指定索引缓冲区的大小,它决定索引处理的速度,尤其是索引读的速度
key_buffer_size = 128M
#thread_stack每个连接线程被创建时,MySQL给它分配的内存大小。
thread_stack = 256K
#服务器线程缓存,这个值表示可以重新利用保存在缓存中线程的数量
thread_cache_size = 1024
#thread_concurrency线程并发,默认值为8, 对mysql的性能影响很大
thread_concurrency = 12
# for innodb
#对于InnoDB表来说,innodb_buffer_pool_size的作用就相当于key_buffer_size对于MyISAM表的作用一样,可以达到物理内存的80%, 默认值为 128M.
innodb_buffer_pool_size = 6G
innodb_buffer_pool_instances = 1
innodb_file_io_threads = 4
#innodb_thread_concurrency = 6
innodb_thread_concurrency = 8
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 16M
#logfile大小对于性能的影响主要体现在checkpoint上,建议设置在4G以下
innodb_log_file_size = 1G
innodb_log_files_in_group = 2
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
#innodb_additional_mem_pool_size = 8M
#innodb_additional_mem_pool_size = 16M
innodb_flush_method = O_DIRECT
#innodb_io_capacity参数默认是200,单位是页。该参数设置的大小取决于硬盘的IOPS,即每秒的输入输出量(或读写次数)。
innodb_io_capacity = 2000
innodb_print_all_deadlocks = 1
#innodb_log_group_home_dir = ./redolog
innodb_max_purge_lag = 1
innodb_read_io_threads = 8
innodb_write_io_threads = 8
# for every connection
#sort_buffer_size是MySql执行排序使用的缓冲大小默认2M,列如:500个连接将会消耗500*sort_buffer_size(2M)=1G内存
sort_buffer_size = 32M
#read_buffer_size 默认2M。是MySql读入缓冲区,对表进行顺序扫描的请求将分配一个读入缓冲区
read_buffer_size = 8M
#read_rnd_buffer_size 是MySql的随机读缓冲区大小,默认8M
read_rnd_buffer_size = 16M
#用于表间关联缓存的大小,和sort_buffer_size一样,该参数对应的分配内存也是每个连接独享。
join_buffer_size = 8M
# for debug设置慢查询
long_query_time = 0.5
#slow_query_log是否开启慢查询日志展示
slow_query_log = OFF
slow_query_log_file = /usr/local/software/mysql/data/db-slow.log
[mysqldump]
quick
quote-names
[mysql]
socket = /var/lib/mysql/mysql.sock
配置mysql为系统服务
创建mysqld启动命令脚本
cp support-files/mysql.server /etc/init.d/mysqld
设置执行权限
chmod a+x /etc/init.d/mysqld
注册成服务
chkconfig --add mysqld
设置开机启动
chkconfig --level 35 mysqld on
启动mysql测试
service mysqld start
服务执行停止/启动/状态查询
# service mysqld stop
# service mysqld start
# service mysqld status