複習電商筆記-20-linux版本mysql安裝和操作
Linux下安裝MYSQL
安裝Percona分支版本的MySQL。效能超越標準的MySQL。
上傳解壓
首先安裝 cmake
yum –y install cmake //也需要安裝gcc-c++,openssl openssl-devel。前面已經安裝。 cd /usr/local/src/ mkdir mysql cd mysql / rz 上傳安裝包 tar -xvf Percona-Server-5.6.24-72.2-r8d0f85b-el6-x86_64-bundle.tar rpm -ivh Percona-Server-56-debuginfo-5.6.24-rel72.2.el6.x86_64.rpm rpm -ivh Percona-Server-shared-56-5.6.24-rel72.2.el6.x86_64.rpm rpm -ivh Percona-Server-client-56-5.6.24-rel72.2.el6.x86_64.rpm rpm –ivh Percona-Server-server-56-5.6.24-rel72.2.el6.x86_64.rpm
安裝順序:rpm包很多,只需安裝debuginfo 、shared、client、server
安裝目錄
配置檔案路徑 /etc/my.cnf
注意:安裝完成後,會將配置檔案放在etc目錄下
vi /etc/my.cnf
資料檔案路徑:/var/lib/mysql
啟動服務
service mysql start //自動安裝到它自己制定的目錄下,註冊服務為mysql
service mysql status
service mysql stop
配置開機啟動:
chkconfig --list //展現開機的服務
修改root密碼
預設沒有密碼不安全:
mysqladmin –u root password "root"
Warning警告提示,忽略即可。
登入:
mysql –uroot –proot
已經有密碼進行修改
mysql> use mysql;
mysql> update user set password=PASSWORD('root') where user='root';
mysql> flush privileges;
驗證是否成功安裝
use mysql //開啟mysql資料庫 show tables //檢視mysql資料庫下的表
注意:Percona安裝和mysql正式版的安裝,在依賴上有區別。
開啟3306埠
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
/etc/rc.d/init.d/iptables save #修改生效
/etc/init.d/iptables status #檢視配置
執行資料庫的指令碼
建立庫和資料庫表及資料
mysql>use jtdb;
mysql>set names utf8; #防止亂碼
mysql>source jtdb.sql;
拓展:如何快速匯入大資料庫備份檔案
匯入sql檔案非常慢的問題
檢視目標資料庫的引數
#客戶端/伺服器之間通訊的緩衝區的最大大小
show variables like 'max_allowed_packet';
#TCP/IP和套接字通訊緩衝區大小,建立長度達net_buffer_length行
show variables like 'net_buffer_length';
匯出sql檔案時指定引數
mysqldump -uroot -p 資料庫名 -e --max_allowed_packet=4194304 --net_buffer_length=16384 > sql檔案路徑
匯入sql檔案
use 目標資料庫
source /usr/local/src/lotteryanalysis.sql
檢視有多少表,每張表有多少記錄
mysql 5.6中的information schema,就是儲存了很多資料庫的元資料,其實很多可以用來做資料庫的效能查詢用。
USE information_schema;
SELECT table_name,table_rows FROM TABLES
WHERE TABLE_SCHEMA = 'jtdb'
ORDER BY table_rows DESC;
注意:[1]mysql內部原因,統計不準確
開啟MYSQL遠端訪問許可權
語法:
grant [許可權] on [資料庫名].[表名] to ['使用者名稱']@['web伺服器的ip地址'] identified by ['密碼'];
grant all on *.* to 'root'@'%' identified by 'root';
或者指定IP地址
grant all on *.* to 'root'@'192.168.1.103' identified by 'root';
安裝第二臺MYSQL伺服器
上傳Percona-Server-5.6.24-72.2-r8d0f85b-el6-x86_64-bundle.tar
到/usr/local/src/mysql 解壓後形成 7 個rpm包。
複製第一臺的虛擬機器,按上面配置後,開放埠,配置遠端訪問許可權。
常見問題
PID file could not be found
mysql無法啟動ERROR! MySQL is running but PID file could not be found ?
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'
解決辦法:
ps aux | grep mysql
kill -9 pid1 pid2 #pid1,pid2為具體的查詢出來的埠
service mysql start 或者 /etc/init.d/mysql start
提示uuid重複
由於data拷貝是全目錄拷貝,將/var/lib/mysql/auto.cnf也拷貝,它裡面記錄了對資料庫的一個uuid標識,隨便產生個新的uuid,替換掉新目錄中的auto.cnf中的uuid串即可。
可以用select uuid()來產生新值,手工黏貼到auto.cnf檔案中。
The server quit without updating PID file
Starting MySQL...The server quit without updating PID file (/usr/local/mysql/data/snsgou.pid)
問題可能的原因有多種,具體什麼原因最好的辦法是先檢視下錯誤日誌:
1、可能是/usr/local/mysql/data/mysql.pid檔案沒有寫的許可權
解決方法 :給予許可權,執行 “chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data” 然後重新啟動mysqld!
2、可能程序裡已經存在mysql程序
解決方法:用命令“ps -ef|grep mysqld”檢視是否有mysqld程序,如果有使用“kill -9 程序號”殺死,然後重新啟動mysqld!
3、可能是第二次在機器上安裝mysql,有殘餘資料影響了服務的啟動。
解決方法:去mysql的資料目錄/data看看,如果存在mysql-bin.index,就趕快把它刪除掉吧,它就是罪魁禍首了。本人就是使用第三條方法解決的 !
4、mysql在啟動時沒有指定配置檔案時會使用/etc/my.cnf配置檔案,請開啟這個檔案檢視在[mysqld]節下有沒有指定資料目錄(datadir)。
解決方法:請在[mysqld]下設定這一行:datadir = /usr/local/mysql/data
5、skip-federated欄位問題
解決方法:檢查一下/etc/my.cnf檔案中有沒有沒被註釋掉的skip-federated欄位,如果有就立即註釋掉吧。
6、錯誤日誌目錄不存在
解決方法:使用“chown” “chmod”命令賦予mysql所有者及許可權
7、selinux惹的禍,如果是centos系統,預設會開啟selinux
解決方法:關閉它,開啟/etc/selinux/config,把SELINUX=enforcing改為SELINUX=disabled後存檔退出重啟機器試試。