MySQL
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL相关的知识,希望对你有一定的参考价值。
mysql
查看安装路径
ps -ef|grep mysql
1,配置linux虚拟机,修改IP
????? vim /etc/sysconfig/network-scripts/ifcfg-eth0
2,配置完网卡之后,执行清空命令
3,reboot
查看生产环境
上传文件
MySQL5.5编译方式安装过程
参考连接:http://blog.51cto.com/oldboy/1917295?
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.34 \
-DMYSQL_DATADIR=/application/mysql-5.6.34/data\
-DMYSQL_UNIX_ADDR=/application/mysql-5.6.34/tmp/mysql.sock?\
-DDEFAULT_CHARSET=utf8\
-DDEFAULT_COLLATION=utf8_general_ci\
-DWITH_EXTRA_CHARSETS=all\
-DWITH_INNOBASE_STORAGE_ENGINE=1\
-DWITH_FEDERATED_STORAGE_ENGINE=1\
-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1\
-DWITH_ZLIB=bundled\
-DWITH_SSL=bundled\
-DENABLED_LOCAL_INFILE=1\
-DWITH_EMBEDDED_SERVER=1\
-DENABLE_DOWNLOADS=1\
-DWITH_DEBUG=0
?
Mysql压力测试
MySQL授权
Mysql bin-log日志(二进制)
Bin-log日志:只保存? 增删改、create的日志
可以使用bin-log恢复数据
设置服务端的字符集
查看日志乱码http://www.linuxidc.com/Linux/2016-01/126978.htm
my.cnf里面修改设置:
transaction_isolation?=?REPEATABLE-READ
binlog_format=MIXED
?
备份和数据恢复
1,首先恢复 备份的 sql文件
2,恢复bin-log
Mysql主从复制
个人写的:
开始搭建主从复制
服务器二台:
????? 分别安装二台Mysql数据库
????? 1:安装命令
?????????? yum –y install mysql-server
?????????? service mysqld start
?????
????? 2:配置登陆用户的密码
??????????
?
????? /usr/bin/mysqladmin -u root password ‘new-password‘
????? 配置用户的密码:new-password,修改这个就可以
?
Show databases
?
Use MySQL
Show tables
Select host,user,password from user;
删除其他不安全的用户信息
delete from user where password=‘‘;
Windows服务? Linux? 中的MySQL,需要? 执行
update user set host=‘192.168.119.1‘;
?
刷新? flush privileges;
?
mysql –u root –p –h 192.168.119.1
只有本机Windows可以连接
?
?
?
?
?
????? 3:配置允许第三方机器访问本机Mysql
两台 ?MySQL? 服务器 ?互相 ?连接一下,看看两台服务器是否可以联通!!!
连不通,执行/etc/rc.d/init.d/iptables stop
主数据库服务器:192.168.1.112,MySQL已经安装,并且无应用数据。
从数据库服务器:192.168.1.115,MySQL已经安装,并且无应用数据。
上面操作步骤作废
grant replication slave on *.* to ‘gool‘@‘192.168.10.25‘ identified by ‘gool‘
Mysql配置
1)???? vim /etc/my.cnf
master和slaver 的 server-id的值不能一样
1)???? service mysqld restart
分别重新启动master,slaver的二台mysql服务
2)???? 登陆
3)???? 输入???? SHOW VARIABLES LIKE ‘server_id‘;
4)???? 来查看server_id是否和你配置的一样。
5)???? master输入
6)???? Mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 106 | | |
+------------------+----------+--------------+------------------+
7)???? 记录下 FILE 及 Position 的值,在后面进行从服务器操作的时候需要用到。
8)???? 配置从服务器
change master to
master_host=‘192.168.10.24‘,
master_user=‘gool‘,
master_password=‘gool‘,
master_log_file=‘mysql-bin.000001‘,
master_log_pos=154;
9)???? 正确执行后启动Slave同步进程
10)? 启动slave
mysql> start slave;
11)? 查看slave状态
mysql> show slave status\G
12)? 其中Slave_IO_Running 与 Slave_SQL_Running 的值都必须为YES,才表明状态正常。
测试主从复制
1:先确定主,从库上没有任何自定义表
2:主服务器上的操作
在主服务器上创建数据库itcast_db
mysql> create database gool_db;
在主服务器上创建表itcast_tb
mysql> create tables gool_tb(id int(3),name char(9));
在主服务器上的表itcast_tb中插入记录
mysql> insert into gool_tb values(01,‘gool1‘);
3:从服务器上查看是否已经同步?
总结:搭建过程中可能引起失败的原因
1:server_id 配置的一样或是配置的没有更新到Mysql数据中来
2:防火墙拦截了3306端口
3:用户与密码不正确
4:Mysql不允许其它机器访问
?
?
MySQL分区
List分区,有“”固定的值不改变“”,适合使用list分区技术
通过desc,查看 查询影响的rows行数
如果不是myisam存储引擎,而是innodb存储引擎,需要进行修改下面内容
Vim /etc/my.conf
MySQL备份
1 |
|
fileName.sql最好加上路径名
导出数据库中的某个表的数据
1 |
|
导出整个数据库中的所有的表结构
在linux命令行下输入:
1 |
|
注意:是加了-d?
导出整个数据库中某个表的表结构
在linux命令行下输入:
1 |
|
注意:是加了-d
导入mysql方法1
进入linux命令命令行下:
1 2 3 |
|
导入mysql方法2
进入linux命令命令行下:
1 2 |
|
route del $SNS_VIP >/dev/null 2>&1???? ???????????? #route del 删除本地路由
???? >/dev/null 2>&1??? 一些消息不想看到的时候,使用? >/dev/null 2>&1? 重定向到? /dev/null这个文件夹下
Shell脚本调用vim编辑器??
若想在shell脚本中调用vi编辑器,输入的内容由here document来提供,示例如下:
1 2 3 4 5 6 7 | #! ? /bin/bash vi?abc.txt <<EOF i????????????????????????#进入insert模式 Here is a ? document!??????#输入文本内容 ^[???????????????????????#这个符号是在Ctrl+v下按ESC键,意为按下ESC退出编辑模式 :wq??????????????????????#保存退出 EOF |
注:vi编辑器为交互式编辑器,一般不用在shell脚本中使用,除非有特殊需求。一般在shell脚本中都调用ed编辑器。
MySQL数据库优化
数据库引擎myisam不支持事物。Inndb支持事物
MySQL表复制
MySQL索引
推荐使用alter创建索引
查看索引:show index from 表名
MySQL视图
视图:相当于一个临时缓冲区,会时刻监测 t1表的数据的变化。
MySQL内置函数
MySQL预处理语句
MySQL事物处理
MySQL存储
MySQL触发器
重排auto_increament
正则表达式
Rand提前随机行
利用GROUP by 的with rollup
用bit group functions做统计
MySQL的help使用
优化SQL语句的步骤
查看? 慢查询的语法:、
慢查询的值越大,说明查询的效率越低
分析SQL语句执行效率
索引
修改表名
Rename table t1 to t2
定期优化表
MySQL的导入和导出
高效率的导出?
高效率的导入
针对myisam数据库引擎的优化 ??
针对innodb数据库引擎的优化
尽量不要使用? “”嵌套查询“”
数据库优化
Mysql服务器优化
四种字符集
Vim /etc/my.conf
慢查询日志问题
Socket问题
Mysql.sock是mysql数据库,启动的时候自动生成的,如果mysql.sock丢失了,可以重新启动mysql数据库
Root密码丢失问题
网络管理
网络管理概念
网络管理的组成
MIB:管理消息库(存放了服务器的? 内存空间、cpu等消息)
网络管理协议
常用网络管理软件
配置snmp服务
编辑snmp.conf配置文件
Snmp常用命令
?mrtg??? 安装? ? ? ? ? ? ? ? ? ? ? ? ? ??
Mrtg系统监控
Mrtg流量图的实现过程
修改mrg.cfg文件,添加如下内容
生成监控图片
复制,root后面的?? 所有代码,连续执行3遍!!!
有ok说明执行成功!!!
生成index.html文件
邮件服务器+shell编写自动报警
关闭Linux自带的邮件服务器
安装postfix
只提供25号端口
?
安装dovecot
提供110号端口,负责送邮件
修改配置文件:/etc/postfix/main.cfg
?
vi /etc/postfix/main.cf
myhostname = sample.test.com ← 设置系统的主机名
mydomain = test.com ← 设置域名(我们将让此处设置将成为E-mail地址“@”后面的部分)
myorigin = $mydomain ← 将发信地址“@”后面的部分设置为域名(非系统主机名)
inet_interfaces = all ← 接受来自所有网络的请求
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain ← 指定发给本地邮件的域名
home_mailbox = Maildir/ ← 指定用户邮箱目录
?
<保存退出!>
?
?
打开dovecot.conf配置文件
vi?/etc/dovecot.conf
把注释去掉
?
?
添加邮件服务器用户
#adduser?username???????//添加用户
#passwd?username????????//设置密码
?
通过window的outlook express 邮件客户端工具进行测试
?
?
编写shell脚本(注意:有些shell语法在centos7上不好用了)
Apache.sh??
Mysql.sh
Disk.sh
使用crontab创建任务计划
每5分钟,执行一次 dish.sh、mysql.sh、apach.sh文件
以上是关于MySQL的主要内容,如果未能解决你的问题,请参考以下文章
连接MySQL出现错误:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)(代码片段
使用 json rereiver php mysql 在片段中填充列表视图
关于mysql驱动版本报错解决,Cause: com.mysql.jdbc.exceptions.jdbc4Unknown system variable ‘query_cache_size(代码片段
修改MySQL密码报错“ERROR 1819 (HY000): Your password does not satisfy the current policy requirements“(代码片段