mysql5.7源码安装
yum-yinstallgccgcc-c++ncursesncurses-develcmake
下载相应源码包cd/root/oneinstack/src
wgethttp://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
wgethttp://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.11.tar.gz
添加mysql用户useradd-M-s/sbin/nologinmysql
预编译tarxzfboost_1_59_0.tar.gz
tarxzfmysql-5.7.11.tar.gz
mkdir-p/data/mysql
cdmysql-5.7.11
cmake.-DCMAKE_INSTALL_PREFIX=/usr/local/mysql\
-DMYSQL_DATADIR=/data/mysql\
-DDOWNLOAD_BOOST=1\#从MySQL5.7.5开始Boost库是必需的
-DWITH_BOOST=../boost_1_59_0\
-DSYSCONFDIR=/etc\
-DWITH_INNOBASE_STORAGE_ENGINE=1\
-DWITH_PARTITION_STORAGE_ENGINE=1\
-DWITH_FEDERATED_STORAGE_ENGINE=1\
-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
-DWITH_MYISAM_STORAGE_ENGINE=1\
-DENABLED_LOCAL_INFILE=1\
-DENABLE_DTRACE=0\
-DDEFAULT_CHARSET=utf8mb4\
-DDEFAULT_COLLATION=utf8mb4_general_ci\
-DWITH_EMBEDDED_SERVER=1
cmake . -DCMAKE_INSTALL_PREFIX=/srv/mysql5713 \
-DMYSQL_DATADIR=/srv/mysql5713/data \
-DMYSQL_UNIX_ADDR=/srv/mysql5713/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATER_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FAST_MUTEXES=1 \
-DWITH_ZLIB=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_READLINE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DWITH_DEBUG=0 \
-DWITH_BOOST=/srv/mysql/boost_1_59_0
make
make install
/bin/cp/usr/local/mysql/support-files/mysql.server/etc/init.d/mysqld
chmod+x/etc/init.d/mysqld
chkconfig--addmysqld
chkconfigmysqldon
vim /etc/my.cnf
[client]
port=3306
socket=/tmp/mysql.sock
default-character-set=utf8mb4
[mysqld]
port=3306
socket=/tmp/mysql.sock
basedir=/usr/local/mysql
datadir=/data/mysql
pid-file=/data/mysql/mysql.pid
user=mysql
bind-address=0.0.0.0
server-id=1
init-connect='SETNAMESutf8mb4'
character-set-server=utf8mb4
#skip-name-resolve
#skip-networking
back_log=300
max_connections=1000
max_connect_errors=6000
open_files_limit=65535
table_open_cache=128
max_allowed_packet=4M
binlog_cache_size=1M
max_heap_table_size=8M
tmp_table_size=16M
read_buffer_size=2M
read_rnd_buffer_size=8M
sort_buffer_size=8M
join_buffer_size=8M
key_buffer_size=4M
thread_cache_size=8
query_cache_type=1
query_cache_size=8M
query_cache_limit=2M
ft_min_word_len=4
log_bin=mysql-bin
binlog_format=mixed
expire_logs_days=30
log_error=/data/mysql/mysql-error.log
slow_query_log=1
long_query_time=1
slow_query_log_file=/data/mysql/mysql-slow.log
performance_schema=0
explicit_defaults_for_timestamp
#lower_case_table_names=1
skip-external-locking
default_storage_engine=InnoDB
#default-storage-engine=MyISAM
innodb_file_per_table=1
innodb_open_files=500
innodb_buffer_pool_size=64M
innodb_write_io_threads=4
innodb_read_io_threads=4
innodb_thread_concurrency=0
innodb_purge_threads=1
innodb_flush_log_at_trx_commit=2
innodb_log_buffer_size=2M
innodb_log_file_size=32M
innodb_log_files_in_group=3
innodb_max_dirty_pages_pct=90
innodb_lock_wait_timeout=120
bulk_insert_buffer_size=8M
myisam_sort_buffer_size=8M
myisam_max_sort_file_size=10G
myisam_repair_threads=1
interactive_timeout=28800
wait_timeout=28800
[mysqldump]
quick
max_allowed_packet=16M
[myisamchk]
key_buffer_size=8M
sort_buffer_size=8M
read_buffer=4M
write_buffer=4M
EOF
初始化数据库之前版本mysql_install_db是在mysql_basedir/script下,5.7放在了mysql_install_db/bin目录下,且已被废弃
"--initialize"会生成一个随机密码(~/.mysql_secret),而"--initialize-insecure"不会生成密码
--datadir目标目录下不能有数据文件
/usr/local/mysql/bin/mysqld--initialize-insecure--user=mysql--basedir=/usr/local/mysql--datadir=/data/mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
service mysql start
chkconfig mysql on
dbrootpwd=oneinstack#数据库root密码
/usr/local/mysql/bin/mysql-e"grantallprivilegeson*.*toroot@'127.0.0.1'identifiedby\"$dbrootpwd\"withgrantoption;"
/usr/local/mysql/bin/mysql-e"grantallprivilegeson*.*toroot@'localhost'identifiedby\"$dbrootpwd\"withgrantoption;"
新版的mysql数据库下的user表中已经没有Password字段了,而是将加密后的用户密码存储于authentication_string字段
shell>cd/opt/mysql-servershell>groupaddmysql#添加mysql用户组shell>useradd-r-gmysql-s/bin/falsemysql#添加mysql用户2> 配置mysql预编译参数
shell>cmake.-DCMAKE_INSTALL_PREFIX=/usr/local/mysql\-DMYSQL_DATADIR=/usr/local/mysql/data\-DWITH_BOOST=/usr/local/boost_1_59_0\-DSYSCONFDIR=/etc\-DEFAULT_CHARSET=utf8mb4\-DDEFAULT_COLLATION=utf8mb4_general_ci\-DENABLED_LOCAL_INFILE=1\-DEXTRA_CHARSETS=all
-DCMAKE_INSTALL_PREFIX:安装路径
-DMYSQL_DATADIR:数据存放目录
-DWITH_BOOST:boost源码路径
-DSYSCONFDIR:my.cnf配置文件目录
-DEFAULT_CHARSET:数据库默认字符编码
-DDEFAULT_COLLATION:默认排序规则
-DENABLED_LOCAL_INFILE:允许从本文件导入数据
-DEXTRA_CHARSETS:安装所有字符集
更多预编译配置参数请参考mysql官方文档说明:http://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html#cmake-general-options
3> 编译并安装shell>make-j`grepprocessor/proc/cpuinfo|wc-l`shell>makeinstall
4> 初始化系统数据库-j参数表示根据CPU核数指定编译时的线程数,可以加快编译速度。默认为1个线程编译,经测试单核CPU,1G的内存,编译完需要将近1个小时。
shell>cd/usr/local/mysqlshell>chown-Rmysql:mysql.#注意:MySQL5.7.6之前的版本执行这个脚本初始化系统数据库shell>./bin/mysql_install_db--user=mysql--basedir=/usr/local/mysql--datadir=/usr/local/mysql/data#5.7.6之后版本初始系统数据库脚本(本文使用此方式初始化)shell>./bin/mysqld--initialize-insecure--user=mysql--basedir=/usr/local/mysql--datadir=/usr/local/mysql/datashell>./bin/mysql_ssl_rsa_setupshell>chown-Rroot.shell>chown-Rmysqldata
shell>cpsupport-files/my-default.cnf/etc/my.cnf6、配置mysql服务
shell>cpsupport-files/mysql.server/etc/init.d/mysqldshell>chkconfig--addmysqld#添加到系统服务shell>chkconfigmysqldon#开机启动7、启动服务
shell>servicemysqldstart#启动mysql服务shell>servicemysqldstop#停止mysql服务shell>servicemysqldrestart#重新启动mysql服务8、设置数据库密码
shell>/usr/local/mysql/bin/mysql-e"grantallprivilegeson*.*toroot@'127.0.0.1'identifiedby"root"withgrantoption;"shell>/usr/local/mysql/bin/mysql-e"grantallprivilegeson*.*toroot@'localhost'identifiedby"root"withgrantoption;"#开启远程登录(将host设为%即可)/usr/local/mysql/bin/mysql-e"grantallprivilegeson*.*toroot@'%'identifiedby"root"withgrantoption;"9、配置mysql环境变量
shell>vim/etc/profileshell>exportPATH=/usr/local/mysql/bin:$PATHshell>source/etc/profile其它注意事项
如果中途编译失败了,需要删除cmake生成的预编译配置参数的缓存文件和make编译后生成的文件,再重新编译。
shell>cd/opt/mysql-servershell>rm-fCMakeCache.txtshell>makeclean
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。