预备工作:
OS:
DATABASE:MysqL-
wget /MysqL/Downloads/MysqL-/MysqL-
1.创建MysqL帐号
[root@localhost~]#groupaddMysqL [root@localhost~]#useradd-gMysqLMysqL [root@localhost~]#passwdMysqL
2.验证安装包
[root@localhost~]#mkdir-p/opt/MysqL-/ [root@localhost~]#tarzxvfMysqL--C/opt/MysqL- [root@localhost~]#cd/opt/MysqL-/
验证之前是否安装过MysqL,若存在MysqL相关包,则rpm -e逐个删除(建议先删devel包,再MysqL包,最后强制删除libs包,centos 7默认为中为mariadb.*,依次删除)
[root@localhostMysqL-]#rpm-qa|grepMysqL
再验证以下编译必备安装包是否安装:
gcc* gcc-c++* cmake autoconf* automake* zlib* ncurses-devel* libtool* bison
当缺少相关安装包时,需要通过rpm -ivh ***.rpm或yum install RPM_NAME安装
3.源码编译过程
[root@localhostMysqL-]#cmake. -DCMAKE_INSTALL_PREFIX=/usr/local/MysqL-#安装目录 -DWITH_INNOBASE_STORAGE_ENGINE=1#支持InnoDB引擎 -DWITH-READLINE=1#支持快捷键 -DEXTRA_CHARSETS=all#安装所有字符集 -DENABLED_LOCAL_INFILE=1#从本地导入数据 -DWITH_EMBEDDED_SERVER=1#编译EmbeddedMysqL库 -DWITH_SSL=bundled# -DDEFAULT_CHARSET=utf8#默认字符集 [root@localhostMysqL-]#make [root@localhostMysqL-]#makeinstall [root@localhostMysqL-]#ln-s/usr/local/MysqL-/usr/local/MysqL
4.创建MysqL数据目录及/etc/
数据存放目录,默认为basedir下的data目录(实际场景下,建议mount专用盘作为data):
[root@localhostMysqL-]#cd/usr/local/MysqL [root@localhostMysqL]#mkdir-p/opt/MysqL/data1 [root@localhostMysqL]#chown-RMysqL:MysqL/opt/MysqL [root@localhostMysqL]#chown-RMysqL:MysqL/usr/local/MysqL [root@localhostMysqL]#vi/etc/ [client] port=3306 socket=/opt/MysqL/data1/ [MysqLd_safe] user=MysqL nice=0 [MysqLd] port=3306 pid-file=/opt/MysqL/data1/ socket=/opt/MysqL/data1/ basedir=/usr/local/MysqL datadir=/opt/MysqL/data1/ tmpdir=/opt/MysqL/data1/ log-error=/opt/MysqL/data1/ slow_query_log=1 slow_query_log_file=/opt/MysqL/data1/MysqL- log_bin=/opt/MysqL/data1/MysqL- [MysqLdump] quick quote-names max_allowed_packet=16M default-character-set=utf8 [MysqL] default-character-set=utf8
4.初始化MysqL
建议进入/usr/local/MysqL目录下,通过以下方式进行初始化,否则可能会报错
[root@localhostMysqL]#./scripts/MysqL_install_db--defaults-file=/etc/ [root@localhostMysqL]#./bin/MysqL_secure_installation
5.将MysqL服务加入管理
建议进入/usr/local/MysqL目录下,通过以下方式进行初始化,否则可能会报错
[root@localhostMysqL]#cp./bin/MysqL/etc//MysqL [root@localhostMysqL]#chkconfig--addMysqL [root@localhostMysqL]#chkconfigMysqLon [root@localhostMysqL]#chkconfig--list
同时更改环境变量 vi ~/.bash_profile,在PATH变量后添加:/usr/local/MysqL/bin
6.启动MysqL服务的几种方式
MysqLd与MysqLd_safe的区别在于MysqLd_safe宕机后仍能重启
[root@localhostMysqL]#serviceMysqLstart
[root@localhostMysqL]#MysqLd_safe--defaults-file=/etc/&
[root@localhostMysqL]#MysqLd--defaults-file=/etc/&
MysqL多实例安装
多实例的几个好处:MysqL多实例共用同一个MysqL程序,但是使用不同的配置文件(可以相同)及端口(必须不同)来启动程序,数据文件存放在不同的文件夹中。这些多实例任务相互独立,可以有效的利用资源,实现资源的逻辑隔离。
上述1-6歩主要安装了使用3306端口的实例,我们同样可以生成其他端口的实例。这里我们通过以下步骤安装3310端口的MysqL实例。
1.创建使用3310端口的MysqL数据目录及/etc/
[root@localhostMysqL-]#cd/usr/local/MysqL [root@localhostMysqL]#mkdir-p/opt/MysqL/data2 [root@localhostMysqL]#vi/etc/ [client] port=3310 socket=/opt/MysqL/data2/ [MysqLd_safe] user=MysqL nice=0 [MysqLd] port=3310 pid-file=/opt/MysqL/data2/ socket=/opt/MysqL/data2/ basedir=/usr/local/MysqL datadir=/opt/MysqL/data2/ tmpdir=/opt/MysqL/data2/ log-error=/opt/MysqL/data2/ slow_query_log=1 slow_query_log_file=/opt/MysqL/data2/MysqL- log_bin=/opt/MysqL/data2/MysqL- [MysqLdump] quick quote-names max_allowed_packet=16M default-character-set=utf8 [MysqL] default-character-set=utf8
2.初始化使用3310端口的MysqL
建议进入/usr/local/MysqL目录下,通过以下方式进行初始化,否则可能会报错
[root@localhostMysqL]#./scripts/MysqL_install_db--defaults-file=/etc/ [root@localhostMysqL]#./bin/MysqL_secure_installation--defaults-file=/etc/
[root@localhostMysqL]#vi/etc/MysqL_ [MysqLd_multi] MysqLd=/usr/local/MysqL/bin/MysqLd_safe MysqLadmin=/usr/local/MysqL/bin/MysqLadmin [MysqLd3306] port=3306 pid-file=/opt/MysqL/data1/ socket=/opt/MysqL/data1/ basedir=/usr/local/MysqL datadir=/opt/MysqL/data1/ tmpdir=/opt/MysqL/data1/ log-error=/opt/MysqL/data1/ slow_query_log=1 slow_query_log_file=/opt/MysqL/data1/MysqL- log_bin=/opt/MysqL/data1/MysqL- [MysqLd3310] [client] port=3310 socket=/opt/MysqL/data2/ [MysqLd_safe] user=MysqL nice=0 [MysqLd] port=3310 pid-file=/opt/MysqL/data2/ socket=/opt/MysqL/data2/ basedir=/usr/local/MysqL datadir=/opt/MysqL/data2/ tmpdir=/opt/MysqL/data2/ log-error=/opt/MysqL/data2/ slow_query_log=1 slow_query_log_file=/opt/MysqL/data2/MysqL- log_bin=/opt/MysqL/data2/MysqL- [MysqLdump] quick quote-names max_allowed_packet=16M default-character-set=utf8 [MysqL] default-character-set=utf8
4.启动MysqL多实例
[root@localhostMysqL]#MysqLd_multi--defaults-file=/etc/MysqL_start3306 [root@localhostMysqL]#MysqLd_multi--defaults-file=/etc/MysqL_start3310