实训day29(8.15)

一、python管理mysql

1、搭建主mysql

root@mysql57 \~\]# tar -xf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz \[root@mysql57 \~\]# cp -r mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql \[root@mysql57 \~\]# rm -rf /etc/my.cnf \[root@mysql57 \~\]# mkdir /usr/local/mysql/mysql-files \[root@mysql57 \~\]# useradd -r -s /sbin/nologin mysql \[root@mysql57 \~\]# chown mysql:mysql /usr/local/mysql/mysql-files/ \[root@mysql57 \~\]# chown 750 /usr/local/mysql/mysql-files/ \[root@mysql57 \~\]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql \[root@mysql57 \~\]# ls /usr/local/mysql/ \[root@mysql57 \~\]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql57 \[root@mysql57 \~\]# service mysql57 start \[root@mysql57 \~\]# /usr/local/mysql/bin/mysql -p Enter password: mysql\> alter user 'root'@'localhost' identified by 'root'; Query OK, 0 rows affected (0.00 sec) mysql\> create user 'blt'@'%' identified by 'blt'; Query OK, 0 rows affected (0.00 sec) mysql\> grant all on \*.\* to 'blt'@'%'; Query OK, 0 rows affected (0.00 sec) mysql\> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql\> create database if not exists test charset utf8mb4; Query OK, 1 row affected (0.00 sec) mysql\> use test; Database changed mysql\> create table user(id int primary key auto_increment,username varchar(45) not null,password varchar(45) not null); Query OK, 0 rows affected (0.01 sec) mysql\> insert into user (username,password)values("aaa","aaa"); Query OK, 1 row affected (0.02 sec) mysql\> select \* from user; +----+----------+----------+ \| id \| username \| password \| +----+----------+----------+ \| 1 \| aaa \| aaa \| +----+----------+----------+ 1 row in set (0.00 sec) 2、pymysql \[root@client \~\]# python3 \>\>\> import pymysql \>\>\>conn=pymysql.connect(host="192.168.8.150",port=3306,database="test",user="blt",password="blt"); \>\>\> cursor=conn.cursor() 3、修改root权限 mysql\> update mysql.user set host='%' where user='root'; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql\> flush privileges; Query OK, 0 rows affected (0.00 sec) \>\>\>conn=pymysql.connect(host="192.168.8.150",port=3306,database="test",user="root",password="root"); \>\>\> curson=conn.cursor() \>\>\> cursor.execute("create user 'slave0'@'%' identified by 'slave0'") 0 \>\>\> cursor.execute("grant replication slave on \*.\* to 'slave0'@'%'") \>\>\> cursor.execute("flush privileges") \>\>\> cursor.execute("flush tables with read lock") 0 \>\>\> cursor.execute("unlock tables") 0 \>\>\> cursor.execute("flush tables with read lock") 0 \>\>\> cursor.execute("show master status") 0 \>\>\> print(cursor.fetchall()) () \>\>\> cursor.execute("show master status") 4、my.cnf \[root@mysql57 \~\]# rm -rf /etc/my.cnf \[root@mysql57 \~\]# vim /usr/local/mysql/my.cnf \[mysqld

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

socket=/tmp/mysql.sock

port=3306

log-error=/usr/local/mysql/data/db01-master.err

log-bin=/usr/local/mysql/data/binlog

server-id=10

character_set_server=utf8mb4

root@mysql57 \~\]# service mysql57 restart \>\>\> conn=pymysql.connect(host="192.168.8.150",port=3306,database="test",user="blt",password="blt"); \>\>\> cursor=conn.cursor() \>\>\> cursor.execute("show master status") 1 \>\>\> print(cursor.fetchall()) (('binlog.000001', 154, '', '', ''),) \>\>\> cursor.execute("unlock tables") 0 5、slave数据库 \[root@slave57 \~\]# tar -xf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz \[root@slave57 \~\]# cp -r mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql \[root@slave57 \~\]# ls /usr/local/mysql/ \[root@slave57 \~\]# mkdir /usr/local/mysql/mysql-files \[root@slave57 \~\]# useradd -r -s /sbin/nologin mysql \[root@slave57 \~\]# chown mysql:mysql /usr/local/mysql/mysql-files/ \[root@slave57 \~\]# chmod 750 /usr/local/mysql/mysql-files/ 6、主从同步 \[root@mysql57 \~\]# rm -rf /usr/local/mysql/data/auto.cnf \[root@mysql57 \~\]# yum -y install rsync \[root@mysql57 \~\]# rsync -av /usr/local/mysql/data [email protected]:/usr/local/mysql/ \[root@slave57 \~\]# yum -y install rsync \[root@slave57 \~\]# vim /usr/local/mysql/my.cnf \[root@slave57 \~\]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql57 \[root@slave57 \~\]# sed -i '$aexport PATH=$PATH:/usr/local/mysql/bin' /etc/profile \[root@slave57 \~\]# sed -n '$p' /etc/profile export PATH=$PATH:/usr/local/mysql/bin \[root@slave57 \~\]# source /etc/profile \[root@slave57 \~\]# chkconfig --add mysql57 \[root@slave57 \~\]# chkconfig mysql57 \[root@slave57 \~\]# chkconfig mysql57 on 7、错误 \[root@slave57 \~\]# service mysql57 start Starting MySQL.2024-08-15T06:29:37.027747Z mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'. ERROR! The server quit without updating PID file (/usr/local/mysql/data/slave57.pid). \[root@slave57 \~\]# mkdir /var/log/mariadb \[root@slave57 \~\]# touch /var/log/mariadb/mariadb.log \[root@slave57 \~\]# chown -R mysql:mysql /var/log/mariadb/ \[root@slave57 \~\]# service mysql57 start Starting MySQL. SUCCESS! ###### 二、MyCat实现读写分离 ![](https://i-blog.csdnimg.cn/direct/28505a1194f74d83821d52818d7b3cfe.png) 1、添加新的虚拟主机,关闭防火墙 \[root@mycat \~\]# systemctl stop firewalld \[root@mycat \~\]# setenforce 0 2、上传jdk和Mycat \[root@mycat \~\]# ls 3、解压并上传到指定位置 \[root@mycat \~\]# tar -xf Mycat-server-1.6.5-release-20180122220033-linux.tar.gz \[root@mycat \~\]# tar -xf jdk-8u192-linux-x64.tar.gz \[root@mycat \~\]# cp -r jdk1.8.0_192/ /usr/local/jdk \[root@mycat \~\]# cp -r mycat/ /usr/local/ 4、查看并且配置jdk文件 \[root@mycat \~\]# ls /usr/local/jdk/ ![](https://i-blog.csdnimg.cn/direct/affa6d8b72794a058a845dda16bb389d.png) \[root@mycat \~\]# sed -i '$aexport JAVA_HOME=/usr/local/jdk' /etc/profile \[root@mycat \~\]# source /etc/profile \[root@mycat \~\]# $JAVA_HOME -bash: /usr/local/jdk: 是一个目录 \[root@mycat \~\]# sed -i '$aexport PATH=$PATH:$JAVA_HOME/bin' /etc/profile \[root@mycat \~\]# source /etc/profile \[root@mycat \~\]# $PATH -bash: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/jdk:/usr/local/jdk/bin: 没有那个文件或目录 \[root@mycat \~\]# javac -version javac 1.8.0_192 5、测试启动Mycat ![](https://i-blog.csdnimg.cn/direct/3cd93b6780624d8dbf342ac5bbbdd4b4.png) \[root@mycat \~\]# /usr/local/mycat/bin/mycat console 6、配置读写分离 \[root@mycat logs\]# vim /usr/local/mycat/conf/server.xml 93 \ 94 \blt\ 95 \test\ 107 \

相关推荐
云计算DevOps-韩老师42 分钟前
Windows 10系统中找回MySQL 8的root密码
windows·mysql·adb
缘来的精彩1 小时前
Android Studio 中实现方法和参数显示一行
android·ide·android studio
二七有头发1 小时前
从零开始:Android Studio开发购物车(第二个实战项目)
android·ide·android studio
我命由我123452 小时前
MQTT - Android MQTT 编码实战(MQTT 客户端创建、MQTT 客户端事件、MQTT 客户端连接配置、MQTT 客户端主题)
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
奔跑吧 android3 小时前
【android bluetooth 协议分析 06】【l2cap详解 11】【l2cap连接超时处理逻辑介绍】
android·bluetooth·l2cap·gd·aosp13
百锦再9 小时前
Android Studio开发中Application和Activity生命周期详解
android·java·ide·app·gradle·android studio·studio
移动开发者1号10 小时前
Android现代进度条替代方案
android·app
万户猴10 小时前
【Android蓝牙开发实战-11】蓝牙BLE多连接机制全解析1
android·蓝牙
RichardLai8810 小时前
[Flutter 基础] - Flutter基础组件 - Icon
android·flutter
前行的小黑炭10 小时前
Android LiveData源码分析:为什么他刷新数据比Handler好,能更节省资源,解决内存泄漏的隐患;
android·kotlin·android jetpack