1.下载mysql
文献:
Linux-安装MySQL(详细教程)_linux安装mysql-CSDN博客https://blog.csdn.net/m0_66360096/article/details/134053517
如果是mysql8.0修改密码报错:
mysql8.0远程登录设置
2.创建一个用户
- 登录到MySQL服务器
使用具有足够权限的MySQL用户(如root
)登录到MySQL服务器。
mysql -u root -p
输入密码后,你将进入MySQL命令行界面。
- 创建用户
使用CREATE USER
语句创建一个新用户,并指定该用户可以从任何主机连接(使用'%'
作为主机名)。如果你只想允许特定的主机或IP地址连接,可以将'%'
替换为相应的值。
CREATE USER 'yourusername'@'%' IDENTIFIED BY 'yourpassword';
注意:出于安全考虑,通常不建议允许所有主机连接。在生产环境中,你应该只允许受信任的主机或IP地址范围进行连接。
- 授予权限
使用GRANT
语句授予新用户所需的权限。例如,要授予用户对yourdatabase
数据库的所有权限,可以执行以下命令:
GRANT ALL PRIVILEGES ON yourdatabase.* TO 'yourusername'@'%';
如果你只想授予特定的权限,可以修改ALL PRIVILEGES
部分。例如,要授予用户仅对某个表的读取权限,可以这样做:
GRANT SELECT ON yourdatabase.yourtable TO 'yourusername'@'%';
- 刷新权限
在授予权限后,你需要刷新MySQL的权限缓存,以确保新的权限设置立即生效。
FLUSH PRIVILEGES;
- 配置MySQL服务器以允许远程连接
默认情况下,MySQL服务器可能只监听本地连接(即仅允许来自服务器的本地连接)。要允许远程连接,你需要编辑MySQL的配置文件(通常是my.cnf
或mysqld.cnf
),并确保以下行被注释掉或不存在(取决于你的配置):
bind-address = 127.0.0.1
或者,你可以将其更改为MySQL服务器应该监听的IP地址,或者如果你希望它监听所有可用的网络接口,则将其更改为0.0.0.0
。但是,请注意,将bind-address
设置为0.0.0.0
可能会使你的MySQL服务器面临安全风险,因此请确保你的服务器具有适当的安全措施(如防火墙规则、使用强密码等)。
- 重启MySQL服务器
在更改配置文件后,你需要重启MySQL服务器以使更改生效。这可以通过服务管理工具(如systemctl
、service
、/etc/init.d/mysql
等)来完成,具体取决于你的操作系统和MySQL安装方式。
3.mysql8.0重置密码
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博客
改验证
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博客https://blog.csdn.net/qq_41091397/article/details/1061577286.可以用navicat连接mycat数据库对mycat的数据库进行操作,看主数据库有没有变化