linux运维篇-mysql

1.下载mysql

文献:

Linux-安装MySQL(详细教程)_linux安装mysql-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_66360096/article/details/134053517

如果是mysql8.0修改密码报错:

解决 MySQL 8.0 修改密码报错:Your password does not satisfy the current policy requirements._mysql8 your password does not satisfy the current -CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/peng2hui1314/article/details/132001154

mysql8.0远程登录设置

ubuntu22.04安装mysql8并授权远程登陆_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV1sr4y1J7E6/?spm_id_from=333.337.search-card.all.click&vd_source=4f5c05d3d7d49748a1eb6bad34affa9c

2.创建一个用户

  1. 登录到MySQL服务器

使用具有足够权限的MySQL用户(如root)登录到MySQL服务器。

mysql -u root -p

输入密码后,你将进入MySQL命令行界面。

  1. 创建用户

使用CREATE USER语句创建一个新用户,并指定该用户可以从任何主机连接(使用'%'作为主机名)。如果你只想允许特定的主机或IP地址连接,可以将'%'替换为相应的值。

CREATE USER 'yourusername'@'%' IDENTIFIED BY 'yourpassword';

注意:出于安全考虑,通常不建议允许所有主机连接。在生产环境中,你应该只允许受信任的主机或IP地址范围进行连接。

  1. 授予权限

使用GRANT语句授予新用户所需的权限。例如,要授予用户对yourdatabase数据库的所有权限,可以执行以下命令:

GRANT ALL PRIVILEGES ON yourdatabase.* TO 'yourusername'@'%';

如果你只想授予特定的权限,可以修改ALL PRIVILEGES部分。例如,要授予用户仅对某个表的读取权限,可以这样做:

GRANT SELECT ON yourdatabase.yourtable TO 'yourusername'@'%';

  1. 刷新权限

在授予权限后,你需要刷新MySQL的权限缓存,以确保新的权限设置立即生效。

FLUSH PRIVILEGES;

  1. 配置MySQL服务器以允许远程连接

默认情况下,MySQL服务器可能只监听本地连接(即仅允许来自服务器的本地连接)。要允许远程连接,你需要编辑MySQL的配置文件(通常是my.cnfmysqld.cnf),并确保以下行被注释掉或不存在(取决于你的配置):

bind-address = 127.0.0.1

或者,你可以将其更改为MySQL服务器应该监听的IP地址,或者如果你希望它监听所有可用的网络接口,则将其更改为0.0.0.0。但是,请注意,将bind-address设置为0.0.0.0可能会使你的MySQL服务器面临安全风险,因此请确保你的服务器具有适当的安全措施(如防火墙规则、使用强密码等)。

  1. 重启MySQL服务器

在更改配置文件后,你需要重启MySQL服务器以使更改生效。这可以通过服务管理工具(如systemctlservice/etc/init.d/mysql等)来完成,具体取决于你的操作系统和MySQL安装方式。

3.mysql8.0重置密码

MySQL8重置密码 —— Centos8_centos mysql8重置密码-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/alun550/article/details/108434030

 4.mysql主从复制

1.主服务器上进行配置:

       

        1.1修改配置文件:

vim /etc/my.cnf

[mysqld]

#主配置

log-bin = mysql-bin                                             #开机binlog

server-id=10                               #主从的唯一标识,各个服务器必须不同

 重启mysql

        1.2创建远程的用户给从数据库使用:

创建用户

CREATE USER 'yourusername'@'%' IDENTIFIED BY 'yourpassword';

用户授权 

GRANT ALL PRIVILEGES ON yourdatabase.* TO 'yourusername'@'%';

        1.2得到主数据库参数

mysql> SHOW MASTER STATUS;

得到File和Position

2.从服务器上进行配置

 2.1修改配置文件:

vim /etc/my.cnf

[mysqld]
#从配置
log-bin = mysql-bin
server-id=11

 重启mysql

2.2配置从服务器以连接到主服务器

进入从数据库中配置

myql -uroot -p
CHANGE MASTER TO   
    MASTER_HOST='主服务器的IP地址',  
    MASTER_USER='replica_user',  
    MASTER_PASSWORD='password',  
    MASTER_LOG_FILE='从SHOW MASTER STATUS得到的File值',  
    MASTER_LOG_POS=从SHOW MASTER STATUS得到的Position值;

启动从服务器的复制进程

START SLAVE;

检查从服务器的复制状态 

SHOW SLAVE STATUS\G;

验证 得到两个yes就代表成功

保证两数据库的server-id不相同,server uuid不相同,如果是8.0的数据库需要改验证

改server uuid

MySQL修改server uuid_server_uuid-CSDN博客

改验证

遇到的MYSQL问题-CSDN博客

ALTER USER 'your_username'@'your_host' IDENTIFIED WITH 'mysql_native_password' BY 'your_password';

5.mysql主主复制 

把以上对从服务器的配置对主服务器重新做一边

6.mycat实现读写分离

前提:

1.实现主从复制数据库,因为如果写入主数据库,而负责读的从数据库没有复制主数据库的话数据就会不一致。

2.jdk要安装,因为mycat是基于jdk环境运行的。

1.在主数据库和从数据库创建用户提供给mycat使用,可查看第2创建一个用户观看

2.下载解压mycat。

wget http://dl.mycat.org.cn/1.6.7.6/20210303094759/Mycat-server-1.6.7.6-release-20210303094759-linux.tar.gz


tar zxvf Mycat-server-1.6.7.6-release-20210303094759-linux.tar.gz -C /apps/

3.进入解压后的包,修改配置文件schema.xml,直接删除原来的内容,复制以下内容。

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
        <schema name="test" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"></schema>
#test为标签名字
        <dataNode name="dn1" dataHost="localhost1" database="test" />
#这里的test为mycat的虚拟数据库
        <dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
                  writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
                <heartbeat>select user()</heartbeat>
                <writeHost host="host1" url="192.168.1.8:3306" user="rep" password="123456">
#这里是主数据库的ip和主数据库用于给mycat操作的用户和密码,用于写,所以还得在主数据库创建一个用户给#mycat操作
                 <readHost host="host2" url="192.168.1.9:3306" user="rep" password="123456"/>
#这里是从数据库的ip和从数据库用于给mycat操作的用户和密码,用与读,所以还得在从数据库创建一个用户给#mycat操作
                </writeHost>
        </dataHost>
</mycat:schema>

4.修改server.xml。

 <user name="admin">
#mycat数据库的账号名称
                <property name="password">123456</property>
#mycat数据库的账号密码
                <property name="schemas">test</property>
#mycat数据库的名字
        </user>

5.可能遇到的问题

配置Mycat---遇到的一些问题_1184-unknown charsetindex:255-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_41091397/article/details/1061577286.可以用navicat连接mycat数据库对mycat的数据库进行操作,看主数据库有没有变化

  • 9
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值