大多数都是将MySQL编译好放在系统目录里
我的方式是将编译的文件放在指定的目录里
为了实现同一台机器可以开启多个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
安装依赖:
[[email protected] ~]# yum install cmake [[email protected] ~]# yum install gcc [[email protected] ~]# yum install gcc-c++ [[email protected] ~]# yum install readline [[email protected] ~]# yum install ncurses-devel [[email protected] ~]# yum install bison [[email protected] ~]# rm -rf /etc/my.cnf /etc/mysql/my.cnf
下载, 编译, 安装 MySQL管理软件
[[email protected] ~]# useradd mysql [[email protected] ~]# su - mysql [[email protected] ~]$ wget http://ftp.iij.ad.jp/pub/db/mysql/Downloads/MySQL-5.7/mysql-boost-5.7.18.tar.gz [[email protected] ~]$ tar xf mysql-boost-5.7.18.tar.gz [[email protected] ~]$ cd mysql-5.7.18/ [[email protected] 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 [[email protected] mysql-5.7.18]$ echo $? 0
为数据库管理软件写个配置文件
[[email protected] ~]$ cd ${HOME}/MySQL [[email protected] MySQL]$ mkdir -p ~/MySQL/etc [[email protected] MySQL]$ vim etc/my.cnf [[email protected] 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 配置文件所有参数在这里: [[email protected] ~]$ /home/mysql/MySQL/bin/mysqld --verbose --help
在磁盘上创建数据仓库,生成仓库文件:
[[email protected] mysql-5.7.18]$ cd ${HOME}/MySQL [[email protected] MySQL]$ mkdir -p data; [[email protected] MySQL]$ rm -rf data/*; ./bin/mysqld --initialize 得到临时密码:Aa8gjN3k2K/a
启动, 关闭, 登陆
[[email protected] MySQL]$ bin/mysqld_safe & #启动MySQL服务,将仓库文件用进程跑起来 [[email protected] MySQL]# ./bin/mysqladmin -uroot -p shutdown #关闭MySQL服务 [[email protected] ~]$ ./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实例.