1. 程式人生 > >複習電商筆記-20-linux版本mysql安裝和操作

複習電商筆記-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後存檔退出重啟機器試試。