虚拟机CENTOS7下 安装8.0版本MySQL MySQL主从配置详细~

news/2024/7/7 22:07:01

全部代码,写在后面吧!

全部的代码在后面。

1、安装mysql

先rz命令上传一下!出现未响应是很正常的情况!等会就好啦。
在这里插入图片描述在这里插入图片描述

ls查看一下,已经出现啦~

xz -d mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz

这个解压不显示过程。
成功! 变成这个名字啦:mysql-8.0.13-linux-glibc2.12-x86_64.tar
在这里插入图片描述

  tar -xvf mysql-8.0.13-linux-glibc2.12-x86_64.tar

在这里插入图片描述

将解压后的文件夹拷贝到/usr/local/并重命名为mysql

 mv -f mysql-5.7.10-linux-glibc2.5-x86_64  /usr/local/mysql

在这里插入图片描述

2、查看系统是否有libaio包,如果没有无法运行mysql数据库

   rpm -qa | grep libaio

libaio-0.3.107-10.el6.x86_64 //表示已经安装
在这里插入图片描述
已经存在啦!

3、建立mysql用户和用户组

 useradd -s /sbin/nologin -M mysql

在这里插入图片描述

4、修改mysql文件夹的属主和属组为mysql

进入有mysql的文件夹,修改.
在这里插入图片描述

   chown -R mysql:mysql mysql

5、初始化数据库,启动mysql/bin目录下的mysqld

8.0版本:
进入bin目录,有启动项的那个!

   ./mysqld --initialize --user=mysql

注意保存初始化mysql数据库密码:

运行完成后注意最后一句,这是mysql数据库自动生成的root密码,一定要记录下来
在这里插入图片描述

6、配置数据库

   cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

或者直接进入/etc/my.cnf进行配置即可!
在实验环境下,按下面的内容配置mysql即可:

vim /etc/my.cnf

要用英文输入法来复制才可以!

   # For advice on how to change settings please see# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the# *** default location during install, and will be replaced if you# *** upgrade to a newer version of MySQL.[mysqld]# Remove leading # and set to the amount of RAM for the most important data# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.# innodb_buffer_pool_size = 128M# Remove leading # to turn on a very important data integrity option: logging# changes to the binary log between backups.# log_bin# These are commonly set, remove the # and set as required.basedir = /usr/local/mysql    #mysql数据库文件夹所在位置datadir = /var/lib/mysql#mysql数据库的数据文件所在位置# port = .....# server_id = .....socket = /var/lib/mysql/mysql.sock#mysql sock位置# Remove leading # to set options mainly useful for reporting servers.# The server defaults are faster for transactions and fast SELECTs. # Adjust sizes as needed, experiment to find the optimal values.# join_buffer_size = 128M# sort_buffer_size = 2M# read_rnd_buffer_size = 2M character-set-server=utf8#修改mysql服务器默认的字符集#此句不是必须sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES[client]socket = /var/lib/mysql/mysql.sockdefault-character-set=utf8
#符号开头的没必要复制上去!

在这里插入图片描述
7、启动数据库

所有版本通用:

 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqldservice mysqld start

数据启动完毕
在这里插入图片描述

8、连接测试数据库

   cd /usr/local/mysql/bin./mysql -u root -p

现在忘记密码岂不是尴尬啦~还好有备份!
在这里插入图片描述

输入密码,成功进入数据库!
修改密码:

   ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

在这里插入图片描述
分号不要忘记!

9、修改环境变量和ld.so.conf

将含有mysql命令的目录添加到环境变量

 # vim  /etc/profilePATH=/usr/local/mysql/bin:$PATH

另外一个:

 #export PATH

在文本最后添加一下环境变量
在这里插入图片描述在这里插入图片描述

将mysql目录下的lib目录添加到ld.so.conf文件

   #vim /etc/ld.so.confinclude /usr/local/mysql/lib/

添加,不是覆盖删除!
在这里插入图片描述
保存退出后输入

   ldconfig

在这里插入图片描述
ldconfig 命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态 链接库(格式如前介绍,lib.so),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为 /etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表**

从服务器也要安装MySQL,但是主从配置就有区别啦!


主从配置:

mysql主服务器配置:

1、修改my.cnf,添加

   [mysqld]log-bin=mysql-binserver-id=1

在这里插入图片描述

2、重启mysql服务

   service mysqld restartsystemctl restart mysqld.service

重启的时候出问题啦,需要安装一个东西!
我写的:https://blog.csdn.net/weixin_42859280/article/details/84574205
在这里插入图片描述

3、在mysql数据库中,建立用户同步数据库的账号:

1、mysql主服务器建立用户并赋予权限
要先登录MySQL才可以进行这个操作!

cd /usr/local/mysql/bin
./mysql -u root -pcreate user 'repl' identified by '123456';ALTER USER 'repl'@'%' IDENTIFIED BY '123456';flush privileges;GRANT replication slave ON *.* TO 'repl'@'%';GRANT ALL privileges ON *.* TO 'repl'@'%';

在这里插入图片描述
示例:

在这里插入图片描述在这里插入图片描述在这里插入图片描述

查看用户和远程主机连接设置

   select host,user from user;

在这里插入图片描述

查看mysql主服务器日志:

   show master status

在这里插入图片描述

   show master status\G

在这里插入图片描述

试试同步数据!
关掉防火墙!
在这里插入图片描述
mysql从服务器配置:

所有版本通用

1、修改my.cnf,添加

   [mysqld]log-bin=mysql-binserver-id=2

在这里插入图片描述
2、重启mysql.server服务

   service mysqld restart

在这里插入图片描述

   systemctl restart mysqld.service

在这里插入图片描述
重启的时候出问题啦,需要安装一个东西!
我写的:https://blog.csdn.net/weixin_42859280/article/details/84574205
3、在从服务器设置主服务器,实现主从配置
登录:

cd /usr/local/mysql/bin
./mysql -u root -p

查看一下主MySQL的日志:
在这里插入图片描述

 CHANGE MASTER TO MASTER_HOST='192.168.159.136',MASTER_USER='repl',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=960;

4、开启主从

   start slave;

在这里插入图片描述
5、检查从服务器状态,注意是否有报错

   show slave status\G;

在这里插入图片描述
已经是连接状态;

试试同步数据!
关掉防火墙!
在这里插入图片描述

同步测试之前。
主数据库:
在这里插入图片描述
从数据库:
在这里插入图片描述

主:
创建数据库:
在这里插入图片描述从MySQL的同步:
在这里插入图片描述

全部代码:

xz -d mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz
tar -xvf mysql-8.0.13-linux-glibc2.12-x86_64.tar
mv -f mysql-8.0.13-linux-glibc2.12-x86_64 /usr/local/mysql
rpm -qa | grep libaio
useradd -s /sbin/nologin -M mysql
cd /usr/local
ls -al
chown -R mysql:mysql mysql
ls -al
cd mysql/bin/
./mysqld --initialize --user=mysql
(记得记下密码!)
直接配置 /etc/my.cnf文件。
vim /etc/my.cnf
复制以下内容:[mysqld]basedir = /usr/local/mysqldatadir = /var/lib/mysqlsocket = /var/lib/mysql/mysql.sockcharacter-set-server=utf8sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES[client]socket = /var/lib/mysql/mysql.sockdefault-character-set=utf8启动数据库:cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqldservice mysqld start登录数据库:
cd /usr/local/mysql/bin
./mysql -u root -proot@localhost: O=y#lQf1kAYJ  比如这个密码,要紧贴着O的左边进行复制。这样才可以!修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';#vim  /etc/profilePATH=/usr/local/mysql/bin:$PATH
#export PATH#vim /etc/ld.so.confinclude /usr/local/mysql/lib/
#ldconfig接下来就是主从配置啦!主:
关掉防火墙!
修改my.cnf,添加[mysqld]log-bin=mysql-binserver-id=1
service mysqld restart
systemctl restart mysqld.service
重启的时候出问题啦,需要安装一个东西!
我写的:https://blog.csdn.net/weixin_42859280/article/details/84574205
登录:
cd /usr/local/mysql/bin
./mysql -u root -p
五条语句:
create user 'repl' identified by '123456';ALTER USER 'repl'@'%' IDENTIFIED BY '123456';flush privileges;GRANT replication slave ON *.* TO 'repl'@'%';GRANT ALL privileges ON *.* TO 'repl'@'%';show databases;
use mysql;
show tables;
select host,user from user;
show master status\G;从:
关掉防火墙!
修改my.cnf,添加[mysqld]log-bin=mysql-binserver-id=2
service mysqld restart
systemctl restart mysqld.service
重启的时候出问题啦,需要安装一个东西!
我写的:
https://blog.csdn.net/weixin_42859280/article/details/84574205登录:
cd /usr/local/mysql/bin
./mysql -u root -pCHANGE MASTER TO MASTER_HOST='192.168.159.136',MASTER_USER='repl',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=1373;开启主从start slave;
show slave status\G;测试同步:
主:创建数据库:
create database www;
use www;
create table info(num int);
show tables;
insert into info values(666);
select * from info;从:
use www;
show tables;
select * from info;

另外,如果
在这里插入图片描述
不是两个yes的话。
就检查一下:

  • 防火墙关闭了吗?
  • repl这个用户可以登录主MySQL吗?
  • server-id=1 server-id=2 这个添加了吗?
  • 看看slave的status信息是否跟主MySQL的master status一样!
    如果都不行的话,就重新做一遍吧!

http://lihuaxi.xjx100.cn/news/266754.html

相关文章

[Educational Codeforces Round 16]A. King Moves

[Educational Codeforces Round 16]A. King Moves 试题描述 The only king stands on the standard chess board. You are given his position in format "cd", where c is the column from a to h and dis the row from 1 to 8. Find the number of moves permitted…

苏炳添博士论文研究自己,奥运学术两兼顾,还是暨大副教授,网友:真正的Run数据...

点击上方“视学算法”,选择加"星标"或“置顶”重磅干货,第一时间送达萧箫 发自 凹非寺量子位 报道 | 公众号 QbitAI“我为什么能跑这么快?”这可不是调侃,而是“亚洲飞人”苏炳添的正经博士论文!在题为《新时…

JVM 常用参数

常见参数配置 -XX:PrintGC 每次触发GC的时候打印相关日志-XX:UseSerialGC 串行回收-XX:PrintGCDetails 更详细的GC日志-Xms 堆初始值-Xmx 堆最大可用值-Xmn 新生代堆最大可用值-XX:SurvivorRatio 用来设置新生代中eden空间和from/to空间的比例.-XX:NewRatio 配置新生代与老年代…

用两个栈实现队列

用两个栈实现队列 【题目】: 用两个栈实现一个队列,实现这个队列的删除头部deleteHead和插入尾部appendTail的功能。 示例 1: 输入: ["CQueue","appendTail","deleteHead","deleteHead&quo…

Java 8 中的方法引用,轻松减少代码量,提升可读性!

点击上方蓝色“方志朋”,选择“设为星标”回复“666”获取独家整理的学习资料!1. 引言Java8中最受广大开发中喜欢的变化之一是因为引入了 lambda 表达式,因为这些表达式允许我们放弃匿名类,从而大大减少了样板代码,并提…

干货 | 一文完全理解AUC-ROC曲线

点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达来源: https://towardsdatascience.com/understanding-auc-roc-curve-68b2303cc9c5 翻译:石头 机器学习模型的性能测量是一项必不可少的工作…

Io流的字节流与缓冲流

当我们队大量数据进行保存时可以用数组,当数据到达一定量时或给用户一个易懂得接口时就可采用IO流: IO流按进行的操作分输出流与输入流InputStream与OutputSteam 按操作的原理来分有2种常见的IO流字节流与缓冲流:这2种IO的的输入输出流都是对…

struts2请求处理过程源代码分析(1)

2019独角兽企业重金招聘Python工程师标准>>> 转载自:http://www.see-source.com/ 源码解析网 网上对于struts2请求处理流程的讲解还是比较多的,有的还是非常详细的,所以这里我就简单地将大概流程总结下,有了个大概印象…