-
通过RPM包安装
-
使用编译好的二进制文件安装(一般是一个tar包)
-
下载源代码,采用自定义选项的房事安装
简单来说方法1的rpm安装,安装是简单,维护费劲,后患无穷;方法3的源代码安装逼格无限,但是扪心自问一下,你自己编译得mysql能有官方优化得好吗。所以我们采用方法2的方式来安装。
这里以MySQL5.6.27为例,后面的文章也是以5.6.27为基础,操作系统我用CentOS6,64位
0.下载安装包
登录http://dev.mysql.com/downloads/mysql/
点击上面的Archives
点击MySQL Community Server
在Select Platform选择Linux-Generic;Select Version选择5.6.27
使劲往下拉找到Linux - Generic (glibc 2.5) (x86, 64-bit), Compressed TAR Archive 然后在后面的Download按钮上右键迅雷下载
你可以选择下载以后上传的自己的虚拟机里,或者复制下载地址的url用wget在虚拟机里下载。我用的wget
1.创建保存目录并解压文件
mkdir -p /data/workspace
cd /data/workspace/
wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz
tar zxvf mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz
2.创建MySQL启动程序位置
mkdir -p /opt/mysql
3.创建MySQL软链接
cd /usr/local/
ln -s /data/workspace/mysql-5.6.27-linux-glibc2.5-x86_64 mysql
4.创建MySQL帐号
groupadd mysql
useradd -r -g mysql mysql -d /usr/local/mysql
5.创建mysql数据文件和日志存储位置
这里我没有使用默认的3306端口,而是使用3316端口,大家可以随意。
mkdir -p /data/mysql/mysql3316/{data,logs,tmp}
6.创建配置文件my.cnf
MySQL读取配置文件的位置有很多,日后会提到,这里大家先按我说的放在/etc下
vi /etc/my.cnf
将下面内容复制进去。具体的参数会在以后讲到,现在不必纠结这些参数有什么用处
#my.cnf
[client]
port = 3316
socket = /tmp/mysql.sock
[mysql]
prompt="\\u@\\h:\p \\R:\\m:\\s [\\d]>"
no-auto-rehash
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
log = /opt/mysql/mysqld_multi.log
[mysqld]
#misc
user = mysql
basedir = /usr/local/mysql
datadir = /data/mysql/mysql3316/data
port = 3316
socket = /tmp/mysql.sock
event_scheduler = 0
#timeout
interactive_timeout = 300
wait_timeout = 300
#character set
character-set-server = utf8
open_files_limit = 65535
max_connections = 100
max_connect_errors = 100000
skip-name-resolve = 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 = mixed
server-id = 203306
log-bin = /data/mysql/mysql3316/logs/mysql-bin
binlog_cache_size = 4M
max_binlog_size = 1G
max_binlog_cache_size = 2G
sync_binlog = 0
expire_logs_days = 10
#relay log
skip_slave_start = 1
max_relay_log_size = 1G
relay_log_purge = 1
relay_log_recovery = 1
log_slave_updates
#slave-skip-errors=1032,1053,1062
explicit_defaults_for_timestamp=1
#buffers & cache
table_open_cache = 2048
table_definition_cache = 2048
table_open_cache = 2048
max_heap_table_size = 96M
sort_buffer_size = 2M
join_buffer_size = 2M
thread_cache_size = 256
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:1G:autoextend
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 64M
innodb_log_file_size = 500M
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 = 2000
transaction_isolation = READ-COMMITTED
innodb_flush_method = O_DIRECT
7.修改权限并初始化
cd /usr/local/
chown -R mysql:mysql mysql
#注意这一步只是把软链接的权限给了mysql这个用户,还要把实际的文件权限给mysql用户,如下
cd /usr/local/mysql
chown -R mysql:mysql *
chown -R mysql:mysql /data/mysql/mysql3316
cd /usr/local/mysql
./scripts/mysql_install_db
#这一步是执行mysql安装包中的初始化,成功的话会看到下面图中的两个OK
8.激动人心的启动
cp support-files/mysql.server /etc/init.d/mysql
#把MySQL的启动文件复制到系统启动当中,这么做就行了,以后咱们基本不会用这种房事启动的。
#启动MySQL,运气好的话,你能看见下面的图
/etc/init.d/mysql start
9.进入MySQL
cp /usr/local/mysql/bin/mysql /usr/local/bin/
#为了我们以后省事。。。把MySQL的执行文件考到系统默认位置去
#以root方式登录进去,如下图
mysql -uroot -p
10.后面的那些事情
一般能登录进去就没有什么问题了,如果你还是不放心的话可以这么干
-
查看启动日志
cat /data/mysql/mysql3316/data/error.log
-
查看端口是否打开,mysql进程是否启动
netstat -nalp | grep 3316
ps aux | grep mysql
下次我们再说说启动的那些事