1.安装编译源码所需的工具和库
yum install gcc gcc-c++ ncurses-devel perl -y
yum -y install wget gcc-c++ ncurses ncurses-devel cmake make perl bison openssl openssl-devel gcc* libxml2 libxml2-devel curl-devel libjpeg* libpng* freetype*
2.创建mysql用户和组
groupadd mysql
useradd -r -g mysql mysql
mkdir -p /mydata/mysql
mkdir -p /mydata/mysql/mysqldb #创建一个数据目录
3.编译安装:
##注意:红色标注需要修改
cmake -DCMAKE_INSTALL_PREFIX=/mydata/mysql -DMYSQL_UNIX_ADDR=/mydata/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/mydata/mysql/mysqldb -DMYSQL_TCP_PORT=3306 -DENABLE_DOWNLOADS=1
注:重新运行配置,需要删除CMakeCache.txt文件
rm CMakeCache.txt参数解释:
-DCMAKE_INSTALL_PREFIX=dir_name 设置mysql安装目录
-DMYSQL_UNIX_ADDR=file_name 设置监听套接字路径,这必须是一个绝对路径名。默认为/tmp/mysql.sock
-DDEFAULT_CHARSET=charset_name 设置服务器的字符集。
缺省情况下,MySQL使用latin1的(CP1252西欧)字符集。cmake/character_sets.cmake文件包含允许的字符集名称列表。
-DDEFAULT_COLLATION=collation_name 设置服务器的排序规则。
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 存储引擎选项:MyISAM,MERGE,MEMORY,和CSV引擎是默认编译到服务器中,并不需要明确地安装。
静态编译一个存储引擎到服务器,使用-DWITH_engine_STORAGE_ENGINE= 1
可用的存储引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), 和PERFSCHEMA (Performance Schema)
-DMYSQL_DATADIR=dir_name 设置mysql数据库文件目录
-DMYSQL_TCP_PORT=port_num 设置mysql服务器监听端口,默认为3306
-DENABLE_DOWNLOADS=bool 是否要下载可选的文件。例如,启用此选项(设置为1),cmake将下载谷歌所使用的测试套件运行单元测试。
注:重新运行配置,需要删除CMakeCache.txt文件
rm CMakeCache.txt
4.make
make
make install
5.修改mysql目录所有者和组
cd /mydata/mysql
mkdir mysql_log
mkdir mysqlbin
chown -R mysql:mysql .
cd /mydata/mysql/mysqldb
chown -R mysql:mysql .
6.初始化mysql数据库
cd /mydata/mysql
scripts/mysql_install_db --user=mysql --datadir=/mydata/mysql/mysqldb
7.复制mysql服务启动配置文件
mv /etc/my.cnf /etc/my.cnf.old
cp /mydata/mysql/support-files/my-default.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
my.cnf配置为:
[mysqld]
# basedir = .....
datadir =/mydata/mysql/mysqldb
#服务器关闭交互式连接所等待的秒数
interactive_timeout=60
#等待断开连接的时间
wait_timeout=60
#临时表内存大小
tmp_table_size=262144
#表高速缓
table_open_cache=2048
#查询缓存的大小
#query_cache_size =0
#group_concat 大小设置
group_concat_max_len = -1
#最大连接数
max_connections=1000
back_log=102
key_buffer_size = 256M
thread_cache_size=64
#服务器可用核数*2
thread_concurrency = 16
#缓冲池大小
innodb_buffer_pool_size = 10G
#日志缓存大
innodb_log_file_size = 2G
#慢日志位置
slow_query_log_file=/mydata/mysql/mysql_log/slow_query.log
#慢日志时间
long_query_time=1
#开启慢日志
slow_query_log=TRUE
#开启没有用到索引的sql
#log-queries-not-using-indexes
##数据库错误日志位置
##log-error=/mnt/Mysql_Log/SqlError.log
#开启二进制日志
log-bin=/mydata/mysql/mysqlbin/mysql-bin
#随机读取缓冲的大小
read_rnd_buffer_size =8M
#顺序读取缓冲的大小
read_buffer_size = 8M
#排序缓冲大小
sort_buffer_size = 6M
tmp_table_size=128M
#query_cache_size=128M
query_cache_type=0
#join table 缓冲的大小
join_buffer_size = 6M
#不区分大小写
lower_case_table_names=1
innodb_additional_mem_pool_size=2097152
# port = .....
# server_id = .....
socket = /mydata/mysql/mysql.sock
log_bin_trust_function_creators=1
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
max_binlog_size = 500M
server-id=1
binlog-do-db=erp_product
log-bin-index=master-bin-log.index
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES#传输文件大小限制
max_allowed_packet=20M[mysqld_safe]
socket = /mydata/mysql/mysql.sock[client]
socket = /mydata/mysql/mysql.sock[mysql.server]
socket = /mydata/mysql/mysql.sock
8.#配置环境变量
vim /etc/profile
export PATH=/mydata/mysql/bin:/mydata/mysql/lib:$PATH
source /etc/profile
9.启动
service mysqld start
chkconfig --level 35 mysqld on
netstat -tulnp | grep 3306
mysql -u root -p 密码为空,如果能登陆上,则安装成功。
mysqladmin -u root password '111'