本文共 4976 字,大约阅读时间需要 16 分钟。
安装glibc版本的MySQL是配置多实例环境的最佳选择。由于官方下载不够方便,我们可以从以下站点获取:
# wget -c https://dev.mysql.com/get/archives/mysql-5.7/mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz
解压并安装:
# tar -zxvf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz# mv mysql-5.7.18-linux-x86_64-glibc2.5 /usr/mysql/mysql-5.7.18
接下来设置环境变量,打开/etc/profile
文件:
# vim /etc/profile
在文件末尾添加以下内容:
export PATH=/usr/mysql/mysql-5.1.18/bin:$PATH
重新加载配置:
# source /etc/profile
安装必要的依赖项:
# yum install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype# yum install freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel# yum install bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5# yum install krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap# yum install openldap-clients openldap-servers
创建mysql用户组和账户:
# groupadd mysql# useradd -s /bin/bash -d /usr/mysql -g mysql mysql# passwd mysql
将用户信息复制到用户目录,并设置权限:
# cp /etc/skel/.bashrc /usr/mysql/.bashrc# cp /etc/skel/.bash_logout /usr/mysql/.bash_logout# cp /etc/skel/.bash_profile /usr/mysql/.bash_profile# chown -R mysql:mysql /usr/mysql
赋予mysql组sudo权限,编辑/etc/sudoers
文件:
# vim /etc/sudoers
在文件末尾添加:
%mysql ALL=(ALL) ALL:ALL
将支持文件中的mysqld_multi.server
和mysql.server
复制到/etc/init.d/
目录:
# cd support-files# cp mysqld_multi.server /etc/init.d/mysqld_multi# cp mysql.server /etc/init.d/mysql
创建数据和日志目录,并设置权限:
# mkdir -p /usr/mysq/mysql-5.7.18/databases# chown -R mysql:mysql /usr/mysq/mysql-5.7.18/databases# chmod 766 mysql:mysql /usr/mysq/mysql-5.7.18/databases
# mkdir -p /usr/mysq/mysql-5.7.18/logs# chown -R mysql:mysql /usr/mysq/mysql-5.7.18/logs# chmod 766 mysql:mysql /usr/mysq/mysql-5.7.18/logs
配置my.cnf
文件:
# vim /etc/my.cnf
添加以下内容:
[mysqld_multi]mysqld=/usr/mysql/mysql-5.7.18/bin/mysqld_safemysqladmin=/usr/mysql/mysql-5.7.18/bin/mysqladminlog=/usr/mysql/mysql-5.7.18/logs/mysqld_multi.loguser=mysqlpassword=mysql[mysqld3306]port=3306basedir=/usr/mysql/mysql-5.7.18datadir=/usr/mysql/mysql-5.7.18/databases/data3306socket=/usr/mysql/mysql-5.7.18/logs/mysqld3306.socklog-error=/usr/mysql/mysql-5.7.18/logs/error-mysqld3306.logpid-file=/usr/mysql/mysql-5.7.18/logs/mysqld3306.pidlanguage=/usr/mysql/mysql-5.7.18/share/englishmax_allowed_packet=256Mquery_cache_size=256Mmax_connections=2000max_connect_errors=10000key_buffer_size=6000Mread_buffer_size=32Mread_rnd_buffer_size=32Mmyisam_sort_buffer_size=512Mtmp_table_size=1024Msort_buffer_size=128Msymbolic-links=0[mysqld3307]port=3307basedir=/usr/mysql/mysql-5.7.18datadir=/usr/mysql/mysql-5.7.18/databases/data3307socket=/usr/mysql/mysql-5.7.18/logs/mysqld3307.socklog-error=/usr/mysql/mysql-5.7.18/logs/error-mysqld3307.logpid-file=/usr/mysql/mysql-5.7.18/logs/mysqld3307.pidlanguage=/usr/mysql/mysql-5.7.18/share/englishmax_allowed_packet=256Mquery_cache_size=256Mmax_connections=2000max_connect_errors=10000key_buffer_size=6000Mread_buffer_size=32Mread_rnd_buffer_size=32Mmyisam_sort_buffer_size=512Mtmp_table_size=1024Msort_buffer_size=128Msymbolic-links=0[mysqld_safe]log-error=/usr/mysql/mysql-5.7.18/logs/mysqld_safe.logpid-file=/usr/mysql/mysql-5.7.18/logs/mysqld_safe.pid[mysqld3308]port=3308basedir=/usr/mysql/mysql-5.7.18datadir=/usr/mysql/mysql-5.7.18/databases/data3308socket=/usr/mysql/mysql-5.7.18/logs/mysqld3308.socklog-error=/usr/mysql/mysql-5.7.18/logs/error-mysqld3308.logpid-file=/usr/mysql/mysql-5.7.18/logs/mysqld3308.pidlanguage=/usr/mysql/mysql-5.7.18/share/englishmax_allowed_packet=256Mquery_cache_size=256Mmax_connections=2000max_connect_errors=10000key_buffer_size=6000Mread_buffer_size=32Mread_rnd_buffer_size=32Mmyisam_sort_buffer_size=512Mtmp_table_size=1024Msort_buffer_size=128Msymbolic-links=0[mysql]no-auto-rehash[isamchk]key_buffer=512Msort_buffer_size=32Mread_buffer=2Mwrite_buffer=2M[myisamchk]key_buffer=512Msort_buffer_size=32Mread_buffer=2Mwrite_buffer=2M[mysqlhotcopy]interactive-timeout
切换到mysql用户:
# su - mysql
初始化数据库:
$ cd /usr/mysql/mysql-5.7.18/bin$ ./mysqld --initialize --user=mysql --basedir=/var/mysql/mysql-5.7.18 --datadir=/var/mysql/mysql-5.7.18/databases/data3306
初始化完成后会生成临时密码,例如:D8*>?hmFfGq8
重复对其他实例进行相同操作:
$ ./mysqld --initialize --user=mysql --basedir=/var/mysql/mysql-5.7.18 --datadir=/var/mysql/mysql-5.7.18/databases/data3307
$ ./mysqld --initialize --user=mysql --basedir=/var/mysql/mysql-5.7.18 --datadir=/var/mysql/mysql-5.7.18/databases/data3308
./mysqld: /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录
# yum install glibc.i686
./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file:
# yum install libaio libaio-devel
切换到mysql用户:
# su - mysql
启动多实例:
$ mysql_multi start 3306$ mysql_multi start 3307$ mysql_multi start 3308
验证启动状态:
# su - root# netstat -lntp -p 4 | grep 330
连接数据库:
# mysql -h 172.20.11.62 -P 3306 -S /usr/mysql/mysql-5.7.18/logs/mysqld3306.sock -u root -p
注意:首次登录使用初始化密码,之后需修改为自己的密码:
> SET PASSWORD='admin123';> flush privileges;
转载地址:http://bnbfk.baihongyu.com/