mysql 运维_MySQL运维之--日常维护操作

一、Linux内核和发行版本号 uname -a

cat /etc/issue

二、glibc的版本号

/lib/libc.so.6    ---没有man函数据的动态链接库

三、MySQL的版本号

MySQL二进制分发版的文件名称格式为:mysql-VERSION-OS.tar.gz

比如:Linux-Generic(glibc 2.5) (x86,64bit),Compressed TAR Archive(mysql-5.6.16-linux-glibc2.5-x86_64.tar.gz)

1、下载

http://dev.mysql.com/downloads/mysql/

2、查rpm包装在什么文件夹下

rpm -qpl MySQL-server-5.6.23-1.el6.i686.rpm  |more

rpm -qpl MySQL-client-5.6.23-1.el6.x86_64.rpm |more

3、更改rpm安装路径

rpm --help

rpm --prefix  --relocate

rpmbuild spec binary rpm

yum install

四、rpm安装

rpm -ivh xxx.rmp

rpm -pql xxx.rmp

MySQL  实例安装和启动

1. 安装

mysql_install_db --defaults-file=/root/data/mysql3306/my.cnf --basedir=/usr/ --datadir=/root/data/mysql3306/data

2. 启动

mysqld_safe --defaults-file=/root/data/mysql3306/my.cnf &

3. 登录

mysql -h127.0.0.1 -uroot -P3306 -p

五、安装演示:

1.关闭mysql

ps -ef |grep mysqld

kill  3397 3801

2.安装

cat init3306

sh init3306.sh

3.启动

cat start3306.sh

sh start3306.sh

注意:mysql_install_db(通过安装rpm包产生mysql_install_db)。有例如以下命令查看:

rpm -pql MySQL-server-5.5.42-1.linux2.6.i386.rpm |grep install

which  mysql_install_db

4.看日志

tail  -100f /root/data/mysql3306/log/alert.log

发生数据字典不存在。就会自己主动创建。。。

5.查看进程

ps -ef |grep mysqld

mysqld_safe是mysqld的父进程

6.登录

sh  my3306.sh  --mysql -h127.0.0.1 -uroot --P3306

六、脚本:

1.---安装mysql: init3306.sh

rm -rf /root/data/mysql3306/data/*

rm -rf /root/log/mysql3306/iblog/*

rm -rf /root/log/mysql3306/binlog/*

chmod -R 777 /root/data/mysql3306/data/

chmod -R 777 /root/log/mysql3306/iblog/

chmod -R 777 /root/log/mysql3306/binlog/

chmod 755 /root/data/mysql3306/my.cnf

mysql_install_db --defaults-file=/root/data/mysql3306/my.cnf --basedir=/usr/ --datadir=/root/data/mysql3306/data

chmod -R 777 /root/data/mysql/3306/data/

chmod -R 777 /root/log/mysql3306/iblog/

chmod -R 777 /root/log/mysql3306/binlog/

2.--启动mysql: start336.sh

mysqld_safe --defaults-file=/root/data/mysql3306/my.cnf &

3.--登录mysql: my3306.sh

mysql -h127.0.0.1 -uroot -P3306 -p

------研究下

cd /root/data/mysql3306/data/mysql

cd /root/data/mysql3306/data/performance_schema  --性能相关的

cd /root/data/mysql3306/data/test    ---測试库

cd /root/log/mysql3306/iblog/        ---innodb自己的数据和日志

------了解my.cnf(多实例用端口来取分)

vi /root/data/mysql3306/my.cnf

[client]

port=3306

socket=/root/data/mysql3306/run/mysql.sock

[mysql]

port=3306

promprt=\\u@\\d \\r:\\m:\\s>

[mysqld]

default-storage-engine=INNODB

character-set-server=iatin1

explicit_defaults_for_timestamp=true

#dir

innodb_log_group_home_dir=/root/log/mysql3306/iblog

innodb_data_home_dir=/root/log/mysql3306/iblog

basedir=/usr

datadir=/root/data/mysql3306/data

tmpdir=/root/data/mysql3306/tmp

slave_load_tmpdir=/root/data/mysql3306/tmp

log-error=/root/data/mysql3306/log/alert.log

slow_query_log_file=/root/data/mysql3306/log/slow.log

relay_log_info_file=/root/log/mysql3306/binlog/relay-log.info

master-info-file=/root/log/mysql3306/binlog/master.info

socket=/root/data/mysql3306/run/mysql.sock

log-bin=/root/log/mysql3306/binlog/binlog

relay-log=/root/log/mysql3306/binlog/relaylog

innodb_force_recovery=0

七、操作mysql

1、登录mysql:

本地:  mysql -u$usrename -p$password

远程:  mysql -u$username -p$passwrod -h$ip

多实例:mysql -u$username -p$passwrod -P$port

2、用户操用

(1)创建用户

方法一:

insert into mysql.user(user,host,password) values('mytest','localhost',password('1234'));

flush privilege;

方法二:create user mystest@'%' identified by '1234';

(2)用户授权

单纯的授权

grant all privileges on *.* to mytest@localhost;

grant insert,update,delete,select on *.* to mytest@localhost;

授权并创建用户

grant all privileges on *.* to mytest@localhost identified by '1234';--创建用户并刷缓存,

(等同于:insert into mysql.user ,flush privilege)

grant all privileges on *.* to mytest@localhost;   --对象权限

grant super on *.* to mytest@'%';   --系统权限  (supert相当于oracle中的dba权限)

3、实操

show databases;   --查看全部的数据库

use mysql;        --切到mysql数据库

use tables;       --在mysql库的tables

select user,host,password from mysql.user;  ----查mysql的全部用户,这个是由mysql_install_db创建的

grant all privilege on *.* to test_1@'%'; --all代表(select update,delete,alter admin,super_acl),第一个*用户,第二个*对象。%全部的主机

mysql -h127.0.0.1 -utest_1    ----用grant创建的用户登录mysql

select user();   ---当前是什么用户

create database jianfeng; ---创建数据库(mysql中的数据库相似于oracle中的schema

create table user(id int) engine=innodb   ---创建表;

grant select on jianfeng.user to test_1@'%';  ---jianfeng.user表的查询授权给test_1用户

insert into mysql.user(user,host,password) values('test_2','%',password('1234')); --用这样的方法创建test_2用户。有个问题权限没有

flush privileges;  ---把mysql.user表的用户权限又一次刷到内存中

show master status\G;

change master to xxx;

show processlist;   ---查看当前用户的连接,线程形式(相似oracle中的v$session)

4、drop table处理

rename table test_1 to test;(能够高速切回来rename table test to test_1;)

备份mysqldump:mysqldump -h127.0.0.1 -uroot mydb gyj_t1 >/tmp/gyj_t1.sql

drop table test;

5、自增主键(最好是自定义主键,系统默认的是全局的增量)

create table test (id int primary key auto_increment,name varchar(100)) engine=innodb;

show create table test\G;

create index test_name_idx on test(name);

show create table test\G;

insert into test(name) values('test');

commit;

select * from test;

6、alter table处理  --会动原来的数据,须要拷贝数据

alter table test add coll int;

7、运行计划

select * from test where id=1\G;

explain select * from test where id=1;

create index test_id_coll_idx on test(id,coll);

explain select * from test where id=1;

create index test_col_name on test(coll,name);

explain select * from test where coll>10 and name='xx';

show create table test\G;

alter table test drop index test_name_idx;

explain select * from test where coll>10 and name>'xx';

8、数据导出

(1)用dump导出数据

mysqldump -h127.0.0.1 -uroot mydb gyj_t1 >/tmp/xx.sql

drop table test;

source /tmp/xx.sql    --导入数据

(2)用select导出数据

select * from test into outfile '/tmp/yy.sql';

9、数据迁移

(1)停机方式

mysqldump/loadata

(2)不停机方式

物理上:搭备库(能够级联5.5-->5.6,向下兼容的)

把主库read only,备库就能把主库转过来的binlog消化完,再把备库切为主

show variables like '%read%';

set global read_only=on;

insert into test(name) values('xx');  --插不进的。不能用root用户

(3)不同平台小表:oracle--->mysql

脚本:synfull.pl

(4)不同平台的一个大表迁多:增量迁移

a.把数据的全量迁过去

b.把迁的过程中产生的日志传过去

c.apply增量

d.锁表切切换

(5)增量

a.Oracle:物化视图

b.MySQL:trigger

create trigger tri_test

before insert,delete,update

insert test_log value(type,id);

end;

/

insert into test values(1,'xxx');

test_log value('insert','1');

lock table test;

应用切换

10、binlog

reset master;   --会把当前的binlog清掉

show binlog events;

create table x1(id int);

show binlog events;

insert into x1 values(1);

commit;

show binlog events;

相似于: mysqlbinlog -vvv binlog.00001 > /tmp/binlog.log

vi /tmp/binlog.log

WAL: write ahead log,日志优先写

11、归档

flush logs;

show master status;

write ahead log. recover backup, duriably. undo acid mvcc

12、參数和统计信息

show variables;  ----參数

show variables like '%bin%';

show status;      ----统计信息

show global status like'%insert%';

insert into test(name) values('xxxxx');

show variables like '%default%';

set global default_storage_engine=myisam;   ---不影响当前会话的操作,影响新建立的连接

set session default_storage_engine=myisam;  ---影响当前会话的操作

---连接池

max_connect

min_connect

max_idle

time_out

disconnect --释放

5b94cd6141dd8362c778465c7478a57f.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值