MySQL安装

二进制安装 - mysql-5.5.49

mkdir /home/oldboy/tools -p
cd /home/oldboy/tools/
rz
#mysql-5.5.49-linux2.6-x86_64.tar.gz
tar -xf mysql-5.5.49-linux2.6-x86_64.tar.gz
mv mysql-5.5.49-linux2.6-x86_64 /application/mysql-5.5.49
useradd -s /sbin/nologin mysql -M
ln -s /application/mysql-5.5.49/ /application/mysql
cd /application/mysql
/bin/cp support-files/my-small.cnf /etc/my.cnf
chown -R mysql.mysql /application/mysql/
/application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data/ --user=mysql
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
sed -i 's#/usr/local/mysql#/application/mysql#g' /application/mysql/bin/mysqld_safe /etc/init.d/mysqld
/etc/init.d/mysqld start
echo 'export PATH=/application/mysql/bin:$PATH' >>/etc/profile
source /etc/profile
mysqladmin -u root password '123456'
lsof -i:3306

MySQL基本操作

shell界面下命令:

启动:/etc/init.d/mysqld start

停止:/etc/init.d/mysqld stop

重启:/etc/init.d/mysqld restart

登陆:mysql -u账号 -p密码

设置密码:mysqladmin -u root password '新密码'

mysql界面下命令:

清理无用的MySQL用户及库

select user,host from mysql.user
drop user "root@::1";

删除无用数据库

drop database test;
show database test;

查看当前所有的数据库

show databases;

查看当前的登陆用户

select user();

MySQL优化

mysql相关命令加入全局路径的配置

方法一:
echo 'export PATH=/application/mysql/bin:$PATH' >>/etc/profile
source /etc/profile
方法二:
ln -s /application/mysql/bin/* /usr/local/sbin/

多实例

mkdir /data/{3306,3307}/data -p
多实例配置文件模板 : ls -l support-files/my*.cnf
编辑多实例配置文件 : vim /data/3306/my.cnf
vim /data/3307my.cnf
创建启动文件 : vim /data/3306/mysql
vim /data/3307mysql

启动多实例:

mysqld_safe--defaults-file=/data/3306/my.cnf 2>&1 >/dev/null &
mysqld_safe--defaults-file=/data/3307/my.cnf 2>&1 >/dev/null &

停止多实例:

mysqladmin -u root -p密码 -S /data/3306/mysql.sock shutdown
mysqladmin -u root -p密码 -S /data/3307/mysql.sock shutdown

初始化mysql多实例数据库文件

cd /application/mysql/scripts
./mysql_install_db --basedir=/application/mysql --datadir=/data/3306/data --user=mysql
./mysql_install_db --basedir=/application/mysql --datadir=/data/3307/data --user=mysql

启动\登陆\重启多实例多实例数据库

启动

/data/3306/mysql start
/data/3307/mysql start

停止

/data/3306/mysql stop
/data/3307/mysql stop

重启

/data/3306/mysql stop
/data/3307/mysql stop

开机自启动

echo "#mysql multi instance" >>/etc/rc.local
echo "/data/3306/mysql start" >>/etc/rc.local
echo "/data/3307/mysql start" >>/etc/rc.local

登陆多实例数据库

mysql -S /data/3306/mysql.sock

设置/修改多实例数据库密码

mysqladmin -u root -S /data/3306/mysql.sock password '密码'
mysql -uroot -p密码 -S /data/3306/mysql.sock 实例的密码存放在/data/3306/mysql文件中,需修改权限为700,防止密码被其他用户看到
find /data -type f -name "mysql" -exec chmod 700 {} \;
修改实例密码:sed -i '13 s#旧密码#新密码#g' /data/3306/mysql /data/3307/mysql

禁止使用pkill、kill -9、killall -9等命令强制杀死数据库,这会引起数据库无法启动等故障的发生

MySQL主从复制

MySQL的主从复制并不是数据库磁盘上的文件直接拷贝,而是Master上开启binlog记录功能,Slave从Master端获取binlog日志,然后再在Slave上以相同顺序执行获取的binlog日志中所记录的各种SQL记录。

开启binlog

[mysqld]
log-bin = /data/3006/mysql-bin

实战 主从同步 <3306为主,3307为从>

开启Master的binlog功能

vim /data/3306/my.cnf

[mysqld]
server-id = 1
log-bin = /data/3006/mysql-bin

/data/3306/mysql restart

登陆数据库检查参数是否生效

egrep "server-id|log-bin" /data/3306/my.cnf

mysql -uroot -p'密码' -S /data/3306/mysql.sock

show variables like 'server_id';
show variables like 'log_bin';

在主库上建立用于主从复制的账号

mysql -uroot -p'密码' -S /data/3306/mysql.sock

grant replication slave on *.* to 'rep'@'10.0.0.%' identified by '密码';
flush privileges;

检查创建的rep复制账号

select user,host from mysql.user;
select user,host from mysql.user where user='rep';
MySQL权限说明:

实现对主数据库锁表只读

锁表只读,然后mysqldump出数据库,然后再解锁

flush table with read lock;
show variables like '%timeout%';

显示信息记录在案

show master status;
或mysql -u root -p '密码' -S /data/3306/mysql.sock -e "show master status"

锁表后,一定要新开ssh窗口,再导出数据库所有数据

mkdir /server/backup -p
mysqldump -uroot -p密码 -S /data/3306/mysql.sock --events -A -B|gzip >/server/backup/mysql_bak.$(date +%F).sql.gz

从库编辑my.cnf文件,添加server-id(id号不能和主一样),注释掉binlog功能,重启从数据库

将导出的数据库发送到从库上导入(可以用scp、rsyn)

gzip -d mysql_bak.2017-01-01.sql.gz
mysql -uroot -p'密码' -S /data/3307/mysql.sock < mysql_back.2017-01-01.sql

从库连接主库配置信息

mysql -uroot -p'密码' -S /data/3307/mysql.sock << EOF
CHANGE MASTER TO
MASTER_HOST='10.0.0.7'
MASTER_PORT='3306'
MASTER_USER='rep'
MASTER_PASSWORD='密码'
MASTER_LOG_FILE='mysql-bin.000008'
MASTER_LOG_POS=342

启动从库同步开关

mysql -uroot -p密码 -S /data/3307/mysql.sock -e "start slave;"
mysql -uroot -p密码 -S /data/3307/mysql.sock -e "show slave status;"

测试

主库上创建个账号
mysql -uroot -p密码 -S /data/3306/mysql.sock -e "create database testtest;"
从库上查看
mysql -uroot -p密码 -S /data/3307/mysql.sock -e "show databases like 'testtest';"

MySQL安装部署及调优的更多相关文章

  1. Mysql安装与配置调优

    一.安装apt-get install mysql-server 需要设置账号密码 apt-get isntall mysql-client apt-get libmysqlclient-dev2.s ...

  2. Ubuntu14.04 Django Mysql安装部署全过程

    Ubuntu14.04 Django Mysql安装部署全过程   一.简要步骤.(阿里云Ubuntu14.04) Python安装 Django Mysql的安装与配置 记录一下我的部署过程,也方便 ...

  3. mysql监控、性能调优及三范式理解

    原文:mysql监控.性能调优及三范式理解 1监控 工具:sp on mysql     sp系列可监控各种数据库 2调优 2.1 DB层操作与调优 2.1.1.开启慢查询 在My.cnf文件中添加如 ...

  4. 【叶问】 MySQL常用的sql调优手段或工具有哪些

     MySQL常用的sql调优手段或工具有哪些1.根据执行计划优化   通常使用desc或explain,另外可以添加format=json来输出更详细的json格式的执行计划,主要注意点如下:     ...

  5. MySQL性能诊断与调优 转

    http://www.cnblogs.com/preftest/ http://www.highperfmysql.com/     BOOK LAMP 系统性能调优,第 3 部分: MySQL 服务 ...

  6. MySQL插入数据性能调优

    插入数据性能调优总结: 1.SQL插入语句调优 2.如果是InnoDB引擎的话,尝试开启事务,批量提交 3.调整MySQl数据库配置     参考: 百度空间 - MySQL插入数据性能调优 CSDN ...

  7. MySQL安装部署

    MySQL安装部署 使用自动化脚本

  8. MySQL性能诊断与调优

    LAMP 系统性能调优,第 3 部分: MySQL 服务器调优http://www.ibm.com/developerworks/cn/linux/l-tune-lamp-3.html LoadRun ...

  9. 2-MySQL DBA笔记-MySQL安装部署和入门

    第2章 MySQL安装部署和入门 第1章介绍了MySQL的一些基础知识,本章将为读者介绍MySQL的部署.安装及一些常用命令和参数的设置.2.1 如何选择MySQL版本 在选择MySQL的版本时,要根 ...

随机推荐

  1. Hive表的修改Alter

    1.查看创建表的信息 [show create table] hive> show create table student; OK createtab_stmt CREATE TABLE `s ...

  2. Vim 基本設置 – 使用Vim-plug管理插件 (3)【转】

    本文转载自:https://staryoru.github.io/vim-plugin-manager/ Vim中有很多非常好用的插件(plugin),對於這些插件的安裝.更新與移除等等,使用一個插件 ...

  3. openwrt的编译系统是如何制作根文件系统的

    答:分析以下makefile即可获取整个过程 以nxp layerscape系统的编译过程为例 1.分析target/linux/layerscape/image/Makefile的最后一句,这是一个 ...

  4. iOS日常学习 - 每个Xcode开发者应该知道的七个使用技巧

    本文为转载学习使用原文链接 工欲善其事,必先利其器.对一个iOS开发者来说,这就意味着对Xcode的熟练掌握程度.Xcode是一个学习起来有点难度的软件,下面的这些技巧或许可以显著的提高你的编程效率. ...

  5. Swift学习笔记 - OC中关于NSClassFromString获取不到Swift类的解决方案

    在OC和Swift混编的过程中发现在OC中通过NSClassFromString获取不到Swift中的类,调研了一下发现问题所在,下面是我的解决方案: 问题的发现过程 UIViewController ...

  6. websocket 重连解决方案

    1.websocket 重连的脚本:https://github.com/joewalnes/reconnecting-websocket                 reconnecting-w ...

  7. POJ - 3169 差分约束

    题意:n头牛,按照编号从左到右排列,两头牛可能在一起,接着有一些关系表示第a头牛与第b头牛相隔最多与最少的距离,最后求出第一头牛与最后一头牛的最大距离是多少,如         果最大距离无限大则输出 ...

  8. RabbitMQ入门(2)——工作队列

    前面介绍了队列接收和发送消息,这篇将学习如何创建一个工作队列来处理在多个消费者之间分配耗时的任务.工作队列(work queue),又称任务队列(task queue). 工作队列的目的是为了避免立刻 ...

  9. Spring Boot JPA 使用 Sql Service 与 不使用默认驼峰策略

    引入 数据源 <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>s ...

  10. [PostgreSql]PostgreSql创建函数及函数的执行

    1.准备好创建函数的脚本 -- FUNCTION: public.dynamic_placelist_select(integer, timestamp without time zone) -- D ...