共计 3590 个字符,预计需要花费 9 分钟才能阅读完成。
大多数都是将 MySQL 编译好放在 Linux 系统目录里,我的方式是将编译的文件放在指定的目录里,为了实现同一台机器可以开启多个 MySQL 实例进程,各个实例之间相互不影响,不需要 root 权限。
下载 CentOS6.5_X86 安装基于 Basic Server
http://archive.kernel.org/centos-vault/6.5/isos/i386/CentOS-6.5-i386-bin-DVD1.iso
MySQL 官方下载 https://dev.mysql.com/downloads/mysql/
MySQL 在线文档 / 下载 https://dev.mysql.com/doc/refman/5.7/en/
MySQL 编译选项文档 https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html
安装依赖:
[root@CentOS ~]# yum install cmake
[root@CentOS ~]# yum install gcc
[root@CentOS ~]# yum install gcc-c++
[root@CentOS ~]# yum install readline
[root@CentOS ~]# yum install ncurses-devel
[root@CentOS ~]# yum install bison
[root@CentOS ~]# rm -rf /etc/my.cnf /etc/mysql/my.cnf
下载, 编译, 安装 MySQL 管理软件
[root@CentOS ~]# useradd mysql
[root@CentOS ~]# su – mysql
[mysql@CentOS ~]$ wget http://ftp.iij.ad.jp/pub/db/mysql/Downloads/MySQL-5.7/mysql-boost-5.7.18.tar.gz
[mysql@CentOS ~]$ tar xf mysql-boost-5.7.18.tar.gz
[mysql@CentOS ~]$ cd mysql-5.7.18/
[mysql@CentOS mysql-5.7.18]$ \
rm -rf CMakeCache.txt; \
make clean; \
cmake . \
-DWITH_BOOST=boost/boost_1_59_0/ \
-DCMAKE_INSTALL_PREFIX=${HOME}/MySQL/ \
-DCMAKE_BUILD_TYPE=Release \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STPRAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWIYH_READLINE=1 \
&& make && make install
[mysql@CentOS mysql-5.7.18]$ echo $?
0
为数据库管理软件写个配置文件
[mysql@CentOS ~]$ cd ${HOME}/MySQL
[mysql@CentOS MySQL]$ mkdir -p ~/MySQL/etc
[mysql@CentOS MySQL]$ vim etc/my.cnf
[chunli@CentOS MySQL_5.7.18]$ cat etc/my.cnf
[client]
port=3306
socket=/tmp/mysql.sock_001
[mysqld]
# mysqld 基本设置
port = 3311
log-error = /home/mysql/MySQL/mysql-error.log
pid-file = /home/mysql/MySQL/mysql.pid
basedir = /home/mysql/MySQL
datadir = /home/mysql/MySQL/data
port=3306 #默认就是 3306
log-error = mysql-error.log
socket = /tmp/mysql.sock_001
pid-file = mysql.pid
default-time-zone = ‘+8:00’
# mysqld 二进制日志相关
log-bin=mysql-bin #打开二进制日志功能
server_id=1000001 #打开二进制必须指定 serverID
binlog_format = mixed
binlog_cache_size = 4M
max_binlog_cache_size = 8M
max_binlog_size = 1G
# mysqld 性能相关
max_connections = 3000 #指定 mysql 服务所允许的最大连接进程数
max_allowed_packet = 4M #设定在网络传输中一次可以传输消息的最大值,系统默认为 1M
sort_buffer_size = 16M #排序缓冲区用来处理类似 orderby 以及 groupby 队列所引起的排序,系统默认大小为 2M
join_buffer_size = 8M #联合查询操作所使用的缓冲区大小
thread_cache_size = 64 #设置 threadcache 池中可以缓存连接线程的最大数量,默认为 0,该值表示可以重新利用保存在缓存中线程的数量
query_cache_size = 64M #指定 mysql 查询缓冲区的大小,用来缓冲 select 的结果,并在下一次同样查询的时候不再执行查询而直接返回结果
query_cache_limit = 4M #只有小于该值的结果才被缓冲,放置一个极大的结果将其他所有的查询结果都覆盖
tmp_table_size = 256M #内存临时表的大小,如果超过该值,会将临时表写入磁盘
default_storage_engine = InnoDB #创建表时默认使用的存储引擎
key_buffer_size = 384M #指定索引缓冲区的大小,内存为 4G 时刻设置为 256M 或 384M
配置文件所有参数在这里:
[mysql@CentOS ~]$ /home/mysql/MySQL/bin/mysqld –verbose –help
在磁盘上创建数据仓库, 生成仓库文件:
[mysql@CentOS mysql-5.7.18]$ cd ${HOME}/MySQL
[mysql@CentOS MySQL]$ mkdir -p data;
[mysql@CentOS MySQL]$ rm -rf data/*; ./bin/mysqld –initialize
得到临时密码:Aa8gjN3k2K/a
启动, 关闭, 登陆
[mysql@CentOS MySQL]$ bin/mysqld_safe & #启动 MySQL 服务, 将仓库文件用进程跑起来
[root@CentOS MySQL]# ./bin/mysqladmin -uroot -p shutdown #关闭 MySQL 服务
[mysql@CentOS ~]$ ./MySQL/bin/mysql -hlocalhost -uroot -p #登陆 MySQL
Enter password: 输入刚才得到的临时密码
立即修改密码, 取消 MySQL root 远程登陆限制
ALTER USER USER() IDENTIFIED BY ‘root’;
use mysql;
select host, user from user;
update user set host = ‘%’ where user = ‘root’;
select host, user from user;
FLUSH PRIVILEGES;
MySQL 相关文件路径
MySQL 程序路径 /home/laowang/MySQL_5.7.18
数据库文件存储路径 /home/laowang/MySQL_5.7.18/data
MySQL 的错误日志路径 /home/laowang/MySQL_5.7.18/data/CentOS.err
MySQL 服务进程 PID /home/laowang/MySQL_5.7.18/data/CentOS.pid-file
到此为止, 一个新的 MySQL 实例完成了, 重复 [下载, 编译, 安装 MySQL 管理软件] 步骤, 将配置文件稍作修改, 即可安装多个 MySQL 实例.
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-04/142833.htm