1、安装.0
首先需要在192.167.3.171上安装JDK 。
下载mysql安装包 , , 找到以下页面下载 。
下载后放到linux系统中
官网说需要先查看本机是否已安装mysql,删除mysql这里不介绍 。
yumyum,安装mysql所需的软件包:。
tar -xvf mysql-8.0.13-linux-.12-.tar.xz , 解压 。
mv mysql-8.0.13-linux-.12- /usr/local/mysql,将解压文件移动到local下 。
mysql
-r -g mysql -s /bin/false mysql
cd /usr/local/mysql
mkdir mysql-files
chown mysql:mysql mysql-files
chmod 750 mysql-files
【Mysql8.0主从搭建】bin/ — –user=mysql , 初始化数据库,注意此处随机生成的密码,第一次登陆mysql的时候要使用 。
bin/ , 安装ssl 。
cp -files/mysql. /etc/init.d/mysql. 将服务文件复制到开机启动目录,实现服务开机自启动 。
bin/ –user=mysql & 开启服务,&是后台运行的意思 , 执行命令之后,终端会卡在一个位置,再按一下Enter即可 。
如果上面命令报错,什么log,pid文件未找到之类的,就需要执行下面方法 。由于mysql服务启动时,会去读取/etc/f文件中的配置内容,我们打开文件来看,文件内容如下(我已修改):
原来的内容地址就是启动mysql服务时报错的路径,我们可以知道,文件不存在问题导致启动失败 。这时,就需要新建文件,并设置文件权限了 。我这里修改了红框内的路径,具体命令如下:
cd /usr/local/mysql/mysql-files
mkdir log ; mkdir pid
touch log/mysql.log ; touch pid/mysql.pid
cd /usr/local/mysql
chown -R mysql:mysql mysql-files
chmod -R 750 mysql-files
然后再次执行:bin/ –user=mysql &
bin/mysql -uroot -p 登陆mysql,回车后粘贴之前初始密码 。
如果登陆时报错,错误如下图,然后,去查看/tmp下面的文件,发现确实没有mysql.sock文件,本地用户登录时使用登陆,所以需要这样一个文件 , 那好,就找一个呗,执行 find / -name mysql.sock,找到在/var/lib/mysql下面有一个文件,然后 , 我尝试cp到tmp下,发现失败,那行,我ln一个呗,ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock , 然后再尝试登陆,有一台机器就可以了 , 另一台始终不行 。那行,我指定行了吧,用以下命令登陆:mysql -uroot -p -S /var/lib/mysql/mysql.sock,试了下可以,那就这样吧!
ALTER USER ‘root’@”BY ‘;
flush
执行完成后 , 我又想使用登陆,那好,试试呗,连接直接报找不到服务,2003。。。。。,行嘛 , 排除原因,总结如下:
1、建立供外部连接的mysql用户 。
mysql -uroot – -s /var/lib/mysql/mysql.sock
user ”@’%’by ”;
grant all on *.* to ”@’%’; 注意,的grant语句和之前版本有差别 。
flush ;
2、防火墙关了,我用的 。
-cmd –state 查看防火墙状态,发现时;
stop . 关闭防火墙
-cmd –state 再次查看,发现not ;
然后再用连接,好嘛,又报错,-sha2-,看来一下,应该是mysql的加密策略变了,版本没跟上呗,那行,执行下面命令,然后再连接 , 没问题了!
mysql -uroot – -s /var/lib/mysql/mysql.sock
alter user ”@’%’by ”never;
alter user ”@’%’with d by ”;
flush ;
ps -ef |grep mysql,可以看到mysql服务有两个,和 。说明启动成功了 。
大家在linux装.0的时候,如果按照步骤来,还出现问题,就分析一下,主要导致的一些原因就是权限问题和文件问题,依次解决一下再试试 。
2、mysql主从安装
分别按以上方发安装两个mysql服务,分别为192.167.3.171(主),192.167.3.172(从) 。
配置主服务
my.conf 文件修改 。添加log-bin与-id,具体配置如下:
重启mysql,mysql;如果没有找到服务,直接用ps -ef|grep mysql , 找到对应进程 , kill -9强行终止后,使用 –user=mysql & 重启 。
登陆mysql,赋予外部连接的用户权限并刷新 。grantslave on *.* to ”@’%’; flush ;
查看主服务信息,从服务配置时需要用到,show;
修改从mysql服务配置
修改f,vi /etc/f
配置从服务,先登陆后,执行TO =’192.167.3.171′, =”, =’,=’.’, =1179;
start slave;
show slave G;查看从服务状态 , 如果内容中有: Fatal error: The slave I/Ostopsand slave have equal MySQLids; these ids must beforto work (or the –-same–idmust be used on slave but this does notmake sense;check theusing it);错误,需要执行下面语句:
showlike ”;可以看见=1,这里与主服务id相同,则执行,set=2;与f内容相同即可 。
重新启动start slave;
如果得到以下信息 , 则提示主从复制配置成功 。
现在可以测试了,在主服务建一个,从服务可以看见,代表配置成功 。
3、++搭建主从分离
使用idea创建工程
pom.xml依赖jar配置,具体配置如下
复制代码
xsi:=” “>
4.0.0
org..boot
-boot–
2.1.2.
com.
demo
0.0.1-
DemoforBoot
1.8
org..boot
-boot–web
org…boot
–boot-
2.0.0
mysql
mysql–java
org..boot
-boot–test
test
io.
-jdbc–boot-
3.0.0
org..
–core
1.3.5
org..boot
-boot-maven-
org..
–maven-
1.3.5
src/main//.xml
true
true
复制代码
.yml配置,具体如下
复制代码
:

文章插图
port: 8888
:
:
name:
:
type–: com..demo.
-: :/*.xml
:
jdbc:
:
names: ,
:
type: com…
-class-name: com.mysql.cj.jdbc.
jdbc-url: jdbc:mysql://192.167.3.171:3306/?=false&=true&=utf8&=true
:
:
: 20
:
type: com…
-class-name: com.mysql.cj.jdbc.
jdbc-url: jdbc:mysql://192.167.3.172:3306/?=false&=true&=utf8&=true
:
:
: 20
:
:
load—type:
name:
-data–name:
slave-data–names:
:
props:
sql:
show: true
复制代码
自动生成器配置
复制代码
“-////DTD1.0//EN”
“”>
=”C:Users\.m2\mysqlmysql–java8.0.13mysql–java-8.0.13.jar”/>
=”jdbc:mysql://192.167.3.171:3306/?=true” =””
=””/>
=”E:test\srcmainjava”>
=”E:test\srcmain”>
=”E:test\srcmainjava” type=””>
=”false” e=”false”
e=”false” e=”false”
Id=”false”>
复制代码
项目demo结构图 , 比较简单,只实现功能
自动生成器执行方法,打开maven,点击运行,具体参考下图
,配置扫描路径 , 也可直接在类上增加@.
复制代码
com..demo;
org….;
org..boot.;
org..boot..n;
@n
@(“com..demo.”)
class{
void main([] args) {
.run(.class, args);
}
}
复制代码
类
复制代码
com..demo;
com..demo..;
com..demo..;
org..beans…;
org..web.bind..;
org..web.bind..;
org..web.bind..;
java.util.List;
@
class{
@
;
@(“/{id}”)
(@(value = https://www.30zx.com/“id”) int id)
{
.(id);
}
@(“//{name}”)
void (@(value = https://www.30zx.com/“name”)name)
{
p = new ();
p.(name);
.(p);
}
}
复制代码
启动工程后,即可测试读写分离 。关于如何查看读写分离效果,可以开启mysql的查询日志,开启方法如下
登陆mysql,执行语句查询日志记录开启情况:showlike “%%”;
+——————+——————————+
|| Value |
+——————+——————————+
|| OFF |
|| /var/lib/mysql/.log |
+——————+——————————+
set= “ON”;开启日志记录,可以在/var/lib/mysql中查看日志 。
测试:访问:8888/1,查询数据 , 在日志中,可以看到,172从服务日志记录查询语句,171没有日志 。
测试:访问:8888//微信安装包解析错误 , 插入语句,可以看到171主服务有日志 , 172从服务没有日志 。
注意:io.用3.0.0版本即可,3.1.0引入maven会报关联错误 。
之前想使用mycat实现读写分离等,结果发现mycat只支持版本,其余版本未在其支持列表微信安装包解析错误,并且mycat很久没更新啦!我自己试了很久都没搭建好mycat的环境,哎!
好啦,基本的都搞完了,之后实施的分库分表!
本文到此结束,希望对大家有所帮助!
猜你喜欢
- 今年将有多款骁龙855手机上市,我们来盘点下近期会有哪些?
- 华为和荣耀有什么不同,畅享和畅玩有什么区别?
- 期房贷款的条件及流程
- 激光切管机具备多种优势,对于锯片式切管机的优势?
- 华为荣耀 旗舰永远绕不开的一个痛,也是目前最差的旗舰体验,你觉得华为屏幕如何?
- 天玑8100的手机有哪些?哪几款值得买?有哪些优缺点?
- 《浮图缘》从灯笼王爷到疯魔帝王,慕容高巩的偏执本就是一场悲剧
- 为什么禁止使用热得快
- 个人养老金开户后必须要交吗?账户里的钱可以提取出来了吗?
