(阿里雲的yum倉庫,裏面的軟件都是阿里雲運維工程師定義的)html
yum install mysql -ypython
-rpm -ivh mysqlxx.rpmmysql
(能夠自定製軟件的版本,以及能夠最優先的使用最新版本軟件)linux
CentOS-Base.repo epel.reporedis
yum install mysql-server mysql -ysql
安裝mysql的方式也有2種,阿里雲官方提供的mariadb軟件包,版本可能過低,可是下載網速很快,方便學習使用數據庫
在企業裏面,多半不會使用阿里雲的mariadb版本,由於版本過低,安全性過低,公司會配置myariadb官方的yum倉庫.django
touch Mariadb.repovim
[mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.1/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1centos
yum install mariadb-server mariadb -y
systemctl start mariadb
mysql_secure_installation
修改mysql的配置文件,支持中文編碼
cat /etc/my.cnf 和我一致就行
[mysqld] character-set-server=utf8 collation-server=utf8_general_ci log-error=/var/log/mysqld.log # 配置文件 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # Settings user and group are ignored when systemd is used. # If you need to run mysqld under a different user or group, # customize your systemd unit file for mariadb according to the # instructions in http://fedoraproject.org/wiki/Systemd [client] default-character-set=utf8 [mysql] default-character-set=utf8
在服務器上,修改了配置文件,都要重啓數據庫服務
systemctl restart mariadb
在utf8編碼下,配置mariadb
show create table stu;
show create database s16;
1. navicat 2. cmd
mysql -uroot -p -h 192.168.15.53 3. pycharm 4. pymysql python 5. orm django
受權mariadb遠程鏈接
授予root用戶對全部的庫表全部的權限,在全部的機器上操做,皆可登陸
grant all privileges on *.* to root@'%' identified by 'zhang123...';
刷新受權表:
flush privileges;
mysqldump -u root -p --all-databases > /tmp/db.dump
數據導入,方式有2種
mysql -uroot -p < /tmp/db.dump
進入mysql命令行,輸入source /tmp/db.dump
192.168.15.53 主庫 192.168.15.94 從庫
配置主庫的環境
修改主庫的配置文件,開啓binlog功能
vim /etc/my.cnf
[mysqld] server-id=1 log-bin=s16-mysql-bin
重啓數據庫
systemctl restart mariadb
建立用於數據同步的帳號
create user 'zhangfei'@'%' identified by 'zhang123';
授予這個帳號,一個slave的身份標識
grant replication slave on *.* to 'zhangfei'@'%';
鎖表
flush table with read lock;
查看 表狀態
show master status;
數據庫信息導出
mysqldump -uroot -p --all-databases > /opt/db.dump
阿里雲的源,和官方源,同一安裝軟件包名以下 yum install mariadb-server mariadb -y
配置從庫的配置文件,開啓server-id vim /etc/my.cnf 寫入以下操做
[mysqld] server-id=3 read-only=true character-set-server=utf8 collation-server=utf8_general_ci log-error=/var/log/mysqld.log
重啓數據庫 systemctl restart mariadb
刪除從庫本身的無用的數據手動drop刪除 從庫導入主庫的數據,保證起始點數據一致 mysql -uroot -p < /db.dump
在從庫,經過一條命令,開啓主從同步
mysql > change master to master_host='192.168.15.53', master_user='zhangfei', master_password='zhang123', master_log_file='s16-mysql-bin.000004', master_log_pos=785;
開啓slave同步 start slave ;
檢查主從同步狀態 show slave status\G
當你檢查這2條參數,yes的時候,主從ok
Slave_IO_Running: Yes Slave_SQL_Running: Yes
此時解鎖主庫!!
unlock tables;
安裝redis的方式 -yum (刪除這個yum安裝的redis,咱們只用源碼編譯安裝的) -rpm -源碼編譯
刪除本來的redis yum remove redis -y
下載redis源碼 wget http://download.redis.io/releases/redis-4.0.10.tar.gz
解壓縮 tar -zxf redis-4.0.10.tar.gz
切換redis源碼目錄 cd redis-4.0.10
編譯源文件 make
默認在/usr/local/bin
指定redis的配置文件 啓動 redis
redis-6666.conf 內容以下
port 6666 #redis端口 daemonize yes #後臺運行redis pidfile /data/6666/redis.pid # pid號碼 loglevel notice #日誌等級 logfile "/data/6666/redis.log" #日誌文件存放路徑 dir /data/6666 #redis數據目錄 requirepass haohaio #redis的密碼
指定配置文件啓動redis服務端 redis-server redis-6666.conf
檢查redis的進程,端口 ps -ef |grep redis netstat -tunlp |grep redis
登陸redis數據庫 redis-cli -p 6666
登陸後 輸入密碼纔可訪問 auth haohaio
PUBLISH channel msg 將信息 message 發送到指定的頻道 channel
SUBSCRIBE channel [channel ...] 訂閱頻道,能夠同時訂閱多個頻道
UNSUBSCRIBE [channel ...] 取消訂閱指定的頻道, 若是不指定頻道,則會取消訂閱全部頻道
PSUBSCRIBE pattern [pattern ...] 訂閱一個或多個符合給定模式的頻道,每一個模式以 * 做爲匹配符,好比 it* 匹配所 有以 it 開頭的頻道( it.news 、 it.blog 、 it.tweets 等等), news.* 匹配全部 以 news. 開頭的頻道( news.it 、 news.global.today 等等),諸如此類
PUNSUBSCRIBE [pattern [pattern ...]] 退訂指定的規則, 若是沒有參數則會退訂全部規則
PUBSUB subcommand [argument [argument ...]] 查看訂閱與發佈系統狀態
**注意:**使用發佈訂閱模式實現的消息隊列,當有客戶端訂閱channel後只能收到後續發佈到該頻道的消息,以前發送的不會緩存,必須Provider和Consumer同時在線。
rdb持久化,能夠手動觸發持久化,經過redis的save命令,觸發
rdb數據文件是壓縮過的 二進制文件,認爲看不懂,redis經過這個文件恢復數據
rdb持久化還有時間策略 save 900 1 # 秒 1個修改類的操做 save 300 10 # 秒 10個操做 save 60 10000 # 秒 10000個操做
使用rdb持久化的方式,在配置文件中,打開rdb持久化 cat redis-6666.conf
內容以下
port 6666 daemonize yes pidfile /data/6666/redis.pid loglevel notice logfile "/data/6666/redis.log" dir /data/6666 dbfilename redis.dump
關閉redis服務端,準備重啓 redis-cli -p 6666 -a haohaio shutdown
使用新的支持rdb持久化的配置文件啓動 redis-server redis-6666.conf
手動觸發rdb持久化
經過save指令
讓配置文件支持按期持久化
port 6666 daemonize yes pidfile /data/6666/redis.pid loglevel notice logfile "/data/6666/redis.log" dir /data/6666 dbfilename redis.dump save 900 1 #rdb機制 每900秒 有1個修改記錄 save 300 10 #每300秒 10個修改記錄 save 60 10000 ~
配置redis支持aof持久化 cat redis-6666.conf 內容以下
port 6666 daemonize yes pidfile /data/6666/redis.pid loglevel notice logfile "/data/6666/redis.log" dir /data/6666 appendonly yes appendfsync everysec
指定配置文件啓動,支持aof redis-server redis-6666.conf 在第一次啓動的時候,就開啓了aof持久化
不重啓redis,切換rdb數據到aof數據中
準備一個rdb的redis數據庫
port 6666 daemonize yes pidfile /data/6666/redis.pid loglevel notice logfile "/data/6666/redis.log" dir /data/6666 dbfilename redis.dump save 900 1 save 300 10 save 60 10000
啓動redis支持rdb的數據庫
設置redis的數據,手動save觸發持久化,生成持久化數據文件
經過命令,切換持久化模式 127.0.0.1:6379> CONFIG set appendonly yes #開啓AOF功能 OK 127.0.0.1:6379> CONFIG SET save "" #關閉RDB功能 OK
修改redis的配置文件,改成aof,便於之後重啓,徹底切換到aof模式 redis-6666.conf內容以下
port 6666 daemonize yes pidfile /data/6666/redis.pid loglevel notice logfile "/data/6666/redis.log" dir /data/6666 appendonly yes appendfsync everysec
實驗完畢
redis-server redis.conf
博客地址: http://www.javashuo.com/article/p-ufazueso-co.html 博客彙總 http://www.javashuo.com/article/p-cglbaabl-eh.html redis
今日做業: 1.完成linux啓動 crm,路飛學城 (優先級最高) 2.完成mysql主從複製技術(爲了寫在簡歷上!) 3.linux運行redis步驟,指定密碼,更改端口 4.練習redis持久化rdb、aof、發佈訂閱