WIN+R打开命令行输入ipconfig
从主机pingLinux系统 ping ip地址
官网下载filezilla 设置主机ip 用户名 密码 端口号为22端口
Linux没有图形化界面,我们只能通过控制台去操作系统,我们就要使用类似DOS命令的Linux命令去操作系统
Linux必须通过cd命令切换目录 目录结构
概述 vi编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下。 由于不需要图形界面,vi是效率很高的文本编辑器。尽管在Linux上也有很多图形界面的编辑器可用, 但vi在系统和服务器管理中的功能是那些图形编辑器所无法比拟的。
1.命令模式 2.插入模式 3.底行模式
ZZ(大写)保存并退出 u辙销操作,可多次使用 dd删除当前行 yy复制当前行 p 粘贴内容 ctrl+f向前翻页 ctrl+b向后翻页 i进入编辑模式,当前光标处插入 a进入编辑模式,当前光标后插入 A进入编辑模式,光标移动到行尾 o进入编辑模式,当前行下面插入新行 O进入编辑模式,当前行上面插入新行
:w保存,:w filenme另存为 :q退出 :wq保存并退出 :e! 撤销更改,返回到上一次保存的状态 :q! 不保存强制退出 :set nu 设置行号
有就删除掉 rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
权限不够:进入root权限 输入su 回车 输入密码
安装之前先安装需要的依赖,否则会报依赖错误 yum install libaio
按顺序进行安装 rpm -ivh mysql-community-common-5.7.21-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-5.7.21-1.el7.x86_64.rpm rpm -ivh mysql-community-client-5.7.21-1.el7.x86_64.rpm rpm -ivh mysql-community-server-5.7.21-1.el7.x86_64.rpm
7. 数据库初始化
mysqld --initialize --user=mysql
为了保证数据库目录为与文件的所有者为 mysql 登陆用户 如果你是以 root 身份运行 mysql 服务,需要执行下面的命令初始化 –initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将该密码标记为过期 而使用 --initialize-insecure 命令则不使用安全模式,则不会为 root 用户生成一个密码。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
管理mysql
启动mysql服务:systemctl start mysqld.service 停止mysql服务:systemctl stop mysqld.service 重启mysql服务:systemctl restart mysqld.service 查看mysql服务当前状态:systemctl status mysqld.service 设置mysql服务开机自启动:systemctl enable mysqld.service 停止mysql服务开机自启动:systemctl disable mysqld.service
重新安装时要删掉以下目录 rm -fr /var/lib/mysql
添加一个用户供其远程连接访问
GRANT ALL PRIVILEGES ON *.* TO 'joker'@'%' IDENTIFIED BY '1234' WITH GRANT OPTION;
flush privileges;
退出重启systemctl restart mysqld
firewall-cmd --zone=public --add-port=3306/tcp --permanent
重新载入 firewall-cmd --reload 查看 firewall-cmd --zone= public --query-port=3306/tcp 删除 firewall-cmd --zone= public --remove-port=3306/tcp --permanent 重启防火墙服务 systemctl restart firewalld.service
重启防火墙时遇到 Failed to start firewalld.service: Unit firewalld.service is masked 执行:systemctl unmask firewalld.service 再从新启动systemctl start firewalld
传统数据库中存在的问题
1.传统数据库设计时,如果服务器宕机,将不能为用户提供服务导致整个系统崩溃. 2.如果数据库突然宕机.会导致数据丢失. 3.为了防止数据丢失,要进行实时备份 冷备份:通过数据库工具进行人为的导出sql.但是手动导出数据可能在中间节点宕机时也会造成数据库的丢失
主从复制
主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库
主从复制的作用
1.做数据的热备,作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据丢失 2.架构的扩展。业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问的频率,提高单个机器的I/O性能 3读写分离,使数据库能支撑更大的并发。
主从复制的原理
1.数据库有个bin-log二进制文件,记录了所有sql语句。 2.我们的目标就是把主数据库的bin-log文件的sql语句复制过来。 3.让其在从数据的relay-log重做日志文件中再执行一次这些sql语句即可。 4.下面的主从配置就是围绕这个原理配置 5.具体需要三个线程来操作 : i/o线程去请求主库 的binlog,并将得到的binlog日志写到relay log(中继日志) 文件中; 主库会生成一个 log dump 线程,用来给从库 i/o线程传binlog; SQL 线程,会读取relay log文件中的日志,并解析成具体操作,来实现主从的操作一致,而最终数据一致;
加入如下代码:
log-bin=C:/ProgramData/MySQL/MySQL Server 8.0/Data/mysql-bin
将mysql二进制日志取名为mysql-bin
server-id=1 为服务器设置一个独一无二的id便于区分
重启mysql命令
mysql5.7
GRANT replication slave ON *.* TO 'joker'@'192.168.0.88' IDENTIFIED BY '1234';
FLUSH PRIVILEGES
mysql8
CREATE USER 'joker'@'192.168.0.88' IDENTIFIED BY '1234';
alter user 'joker'@'192.168.0.8' identified with mysql_native_password by '1234';
FLUSH PRIVILEGES
show master status;
记住这两个值
保存修改 重启服务 启动mysql服务 systemctl start mysqld.service 停止mysql服务 systemctl stop mysqld.service
CHANGE MASTER TO MASTER_HOST='192.168.0.105',
MASTER_USER='joker',
MASTER_PASSWORD='1234',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=656;
参数解释
MASTER_HOST : 设置要连接的主服务器的ip地址 MASTER_USER : 设置要连接的主服务器的用户名 MASTER_PASSWORD : 设置要连接的主服务器的密码 MASTER_LOG_FILE : 设置要连接的主服务器的bin日志的日志名称,即第3步得到的信息 MASTER_LOG_POS : 设置要连接的主服务器的bin日志的记录位置,即第3步得到的信息,(这里注意,最后一项不需要加引号。否则配置失败)
先在从服务器配置完成,启动从服务器: start slave; 查看是否配置成功: show slave status\G;
停止服务复制 stop slave
概述 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句 具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。 ong_query_time的默认值为10,意思是运行10S以上的语句。就会被认作是慢查询 默认情况下,Mysql数据库并不启动慢查询日志,需要我们手动来设置这个参数, 如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。 慢查询日志支持将日志记录写入文件,也支持将日志记录写入数据库表。
查看是否开启慢查询日志
show variables like '%slow_query_log%'
开启
set global slow_query_log=1;
只对当前数据库生效, 如果重启后, 则会失效 如果发永久生效,必须要修改配置文件 slow_query_log =1 slow_query_log_file=地址
那么开启了慢查询日志后,什么样的SQL才会记录到慢查询日志里面呢?
#查看当前时长
show variables like 'long_query_time'
#设置时长
set global long_query_time=4;
要断开连接后, 才能生效 show global variables like ‘long_query_time’;
耗时语句
#睡眠4秒
select sleep(4)
#查看慢查询日志
show global status like '%slow_queries%';
参数
-s 按照那种方式排序 c:访问计数 l:锁定时间 r:返回记录 al:平均锁定时间 ar:平均访问记录数 at:平均查询时间 -t 是top n的意思,返回多少条数据。 -g 可以跟上正则匹配模式,大小写不敏感。
示例
概述
Show Profile是mysql提供的可以用来分析当前会话中sql语句执行的资源消耗情况的工具,可用于sql调优的测量。 默认情况下处于关闭状态,并保存最近15次的运行结果。 把一条sql在mysql当中每一个环节耗费的时候都记录下来 默认该功能是关闭的,使用前需开启。默认保存最近15次运行的结果
使用
当出现以下选项时, 要进行优化 converting HEAP to MyIsAM,查询结果太大,内存都不够用了, 往确磁盘上存在了
Creating tmp table 创建临时表 copy数据到临时表 用完再进行删除
Copying to tmp table on disk 把内存中临时表复制到磁盘, 危险操作 Locked 被锁定
只允许在测试环境用, 不能在生产环境使用 在测试是, 可以把所有执行的sql 抓取出来查看
设置启用
set global general_log = 1;
set global log_output = 'TABLE'
此后所编写的sql语句将会记录到mysql库里的general_log表中
select * from mysql.general_log;
mysql -u root -p1234 --default-character-set=utf8