linux mysql5.7 实例初始化_Linux MySQL5.7多实例数据库配置

0818b9ca8b590ca3270a3433284dd417.png

纯手工打造每一篇开源资讯与技术干货,数十万程序员和Linuxer已经关注。

Linux技术交流QQ群:2650582(六月份最新!!)

mysql的多实例,是使用多个配置文件启动不同的进程来实现多实例,这种方式的优势逻辑简单,配置简单,缺点是管理起来不太方便。

1.下载并安装glibc版本的mysql

通过yum安装的mysql无法实现多实例配置,因此这里使用glibc版本。由于官网不容易找到glibc版本的mysql,建议从下面站点下载:

http://www.360sdn.com/opensource-datasource/2016/0909/8964.html

# 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

添加环境变量

#vim /etc/profile

添加如下内容

export PATH=/usr/mysql/mysql-5.1.18/bin:$PATH

重新加载配置

#source /etc/profile

2.准备运行环境

下载基础运行库

#yum  install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel

bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5

krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap

openldap-clients openldap-servers

创建账户并且分配权限

mysql不允许通过root用户启动,因此,我们这里使用新用户进行管理mysql

---创建mysql分组

#groupadd mysql

---创建名称为mysql的用户,登录时使用basg,用户信息目录在/usr/mysql,并将该用户加入mysql分组

#useradd -s /bin/bash -d /usr/mysql -g mysql mysql

---设置密码#passwd mysql---复制用户信息到用户目录下

#cd /etc/skel#cp .bashrc /usr/mysql.bashrc

#cp .bash_logout /usr/mysql/.bash_logout

#cp .bash_profile /usr/mysql.bash_profile

---更改目录拥有者

#chown -R mysql:mysql /usr/mysql

---给【mysql组】执行sudo的权限

#vim /etc/sudoers

---添加如下内容

%mysql ALL=(ALL)  ALL:ALL

3.创建系统初始化文件

拷贝support-files中的mysql-server到/etc/init.d/目录下注意拷贝之前需要修改mysqld_multi.server中的为你的安装目录

#cd support-files

#vim mysqld_multi.server

---添加如下内容

basedir=/var/mysql/mysql-5.7.18

bindir=/var/mysql/mysql-5.7.18/bin

---复制到/etc/init.d/目录下

#cp mysqld_multi.server   /etc/init.d/mysqld_multi

#cp mysql.server  /etc/init.d/mysql

4.创建配置文件

创建数据目录和日志目录

#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

my.cnf配置如下

[mysqld_multi]

mysqld=/usr/mysql/mysql-5.7.18/bin/mysqld_safe

mysqladmin=/usr/mysql/mysql-5.7.18/bin/mysqladmin

log  =/usr/mysql/mysql-5.7.18/logs/mysqld_multi.log

user=mysql

password=mysql

[mysqld3306]

port=3306

basedir=/usr/mysql/mysql-5.7.18

datadir=/usr/mysql/mysql-5.7.18/databases/data3306 #数据库目录

socket=/usr/mysql/mysql-5.7.18/logs/mysqld3306.sock #socket连接存根

log-error=/usr/mysql/mysql-5.7.18/logs/error-mysqld3306.log #错误日志pid-file=/usr/mysql/mysql-5.7.18/logs/mysqld3306.pid #进程文件language=/usr/mysql/mysql-5.7.18/share/english    #使用提示语言,这里目录下必须包含errmsg.sys

max_allowed_packet = 256M

query_cache_size=256M

max_connections=2000

max_connect_errors=10000

key_buffer_size=6000M

read_buffer_size=32M

read_rnd_buffer_size = 32M

myisam_sort_buffer_size=512M

tmp_table_size=1024M

sort_buffer_size=128M

symbolic-links=0

[mysqld3307]

port=3307

basedir=/usr/mysql/mysql-5.7.18

datadir=/usr/mysql/mysql-5.7.18/databases/data3307

socket=/usr/mysql/mysql-5.7.18/logs/mysqld3307.sock

log-error=/usr/mysql/mysql-5.7.188/logs/error-mysqld3307.log

pid-file=/usr/mysql/mysql-5.7.18/logs/mysqld3307.pid

language=/usr/mysql/mysql-5.7.18/share/english

max_allowed_packet = 256M

query_cache_size=256M

max_connections=2000

max_connect_errors=10000

key_buffer_size=6000M

read_buffer_size=32M

read_rnd_buffer_size = 32M

myisam_sort_buffer_size=512M

tmp_table_size=1024M

sort_buffer_size=128M

symbolic-links=0

[mysqld_safe]

log-error=/usr/mysql/mysql-5.7.18/logs/mysqld_safe.log

pid-file=/usr/mysql/mysql-5.7.18/logs/mysqld_safe.pid

[mysqld3308]

port=3308

basedir=/usr/mysql/mysql-5.7.18

datadir=/usr/mysql/mysql-5.7.18/databases/data3308

socket=/usr/mysql/mysql-5.7.18/logs/mysqld3308.sock

log-error=/usr/mysql/mysql-5.7.18/logs/error-mysqld3308.log

pid-file=/usr/mysql/mysql-5.7.18/logs/mysqld3308.pid

language=/usr/mysql/mysql-5.7.18/share/english

max_allowed_packet = 256M

query_cache_size=256M

max_connections=2000

max_connect_errors=10000

key_buffer_size=6000M

read_buffer_size=32M

read_rnd_buffer_size = 32M

myisam_sort_buffer_size=512M

tmp_table_size=1024M

sort_buffer_size=128M

symbolic-links=0

[mysqldump]

quick

max_allowed_packet = 512M

[mysql]

no-auto-rehash

[isamchk]

key_buffer = 512M

sort_buffer_size = 32M

read_buffer = 2M

write_buffer = 2M

[myisamchk]

key_buffer = 512M

sort_buffer_size = 32M

read_buffer = 2M

write_buffer = 2M

[mysqlhotcopy]

interactive-timeout

5.初始化数据库实例

---切换到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

--生成的临时密钥--->jogrlMlka7&X

$ ./mysqld --initialize --user=mysql --basedir=/var/mysql/mysql-5.7.18 --datadir=/var/mysql/mysql-5.7.18/databases/data3308

--生成的临时密钥--->mogr11ka6kl

这个过程可能遇到如下问题的解决办法

Q:./mysqld: /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录

#yum install glibc.i686

Q:./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file:

No such file or directory

#yum install libaio libaio-devel

创建日志

日志必须手动创建,系统不会自动创建。此外权限是766,用户是mysql,否则无法启动

---切换到root

$ su - root

#cd /usr/mysq/mysql-5.7.18/logs

--创建日志和进程文件,以3306实例为例

#touch mysqld3306.pid

#touch error-mysqld3306.log

#chmod 766 /usr/mysq/mysql-5.7.18/logs/*

#chown -R mysql:mysql /usr/mysq/mysql-5.7.18/logs/

最终需要创建如下文件

-rwxrwxrwx 1 mysql mysql 0 5月  2 15:45 error-mysqld3306.log

-rwxrwxrwx 1 mysql mysql 1 5月  2 17:23 error-mysqld3307.log

-rwxrwxrwx 1 mysql mysql 1 5月  2 17:24 error-mysqld3308.log

-rwxrwxrwx 1 mysql mysql 0 5月  2 17:22 mysqld3306.pid

-rwxrwxrwx 1 mysql mysql 0 5月  2 17:04 mysqld3307.pid

-rwxrwxrwx 1 mysql mysql 0 5月  2 17:10 mysqld3308.pid

6.启动实例

# su - mysql

$ mysql_multi start 3306

$ mysql_multi start 3307

$ mysql_multi start 3308

如果启动成功,我们可以从如下命令中找到

#su - root#netstat -lntp -p 4 | grep 330tcp    0   0 :::3307         :::*          LISTEN   27717/mysqld

tcp    0   0 :::3308         :::*          LISTEN   25537/mysqld

tcp    0   0 :::3306         :::*          LISTEN   27334/mysqld

然后我们登录即可,这里以3306数据库为例

# mysql -h 172.20.11.62 -P 3306 -S /usr/mysql/mysql-5.7.18/logs/mysqld3306.sock -u root -p

注意:首次登录时使用初始化临时密码,然后在数据库中修改为自己的密码

>SET PASSWOR=PASSWORD('admin123');>flush privileges;

到这里我们基本实现了多实例,至于远程连接,请参考其他网络博客。

原文来自:  https://my.oschina.net/ososchina/blog/916982

0818b9ca8b590ca3270a3433284dd417.png

让您学习到的每一节课都有所收获

《Linux就该这么学》是由资深运维专家刘遄及全国多名红帽架构师(RHCA)基于最新RHEL7系统共同编写的高质量Linux技术自学教程,极其适合用于Linux技术入门教程或讲课辅助教材。

☀刘遄老师QQ:5604241  微信:gnu_chuan

☀学员助教QQ:5604674

☀ Linux技术交流A群(满):560843

☀Linux技术交流B群:340829

☀Linux技术交流C群:463590

☀Linux技术交流D群:915246

☀Linux技术交流E群:1663106

☀Linux技术交流F群:1653851

☀Linux技术交流G群:2632018(新群,火热加群中……)

☀官方站点:www.linuxprobe.com

☀ 电脑在线阅读效果更佳:

http://www.linuxprobe.com/chapter-00.html

0818b9ca8b590ca3270a3433284dd417.png

按住图片3秒,即可自动关注。

点击左下角查看更多热门技术

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值