二进制安装 - mysql-5.5.49mysql
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
启动:/etc/init.d/mysqld startlinux
中止:/etc/init.d/mysqld stopsql
重启:/etc/init.d/mysqld restartshell
登录:mysql -u帐号 -p密码数据库
设置密码:mysqladmin -u root password '新密码'vim
清理无用的MySQL用户及库app
select user,host from mysql.user drop user "root@::1";
删除无用数据库ssh
drop database test; show database test;
查看当前全部的数据库ide
show databases;
查看当前的登录用户测试
select user();
方法一: 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
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 -九、killall -9等命令强制杀死数据库,这会引发数据库没法启动等故障的发生
MySQL的主从复制并非数据库磁盘上的文件直接拷贝,而是Master上开启binlog记录功能,Slave从Master端获取binlog日志,而后再在Slave上以相同顺序执行获取的binlog日志中所记录的各类SQL记录。
[mysqld] log-bin = /data/3006/mysql-bin
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
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';"