Linux下安裝mysql教程

Linux下安裝mysql

 MySQL官網: https://dev.mysql.com/downloads/mysql/
  1. 到mysql官網下載mysql編譯好的二進制安裝包,在下載頁面Select Platform:選項選擇linux-generic,而後把頁面拉到底部,64位系統下載Linux - Generic (glibc 2.5) (x86, 64-bit),32位系統下載Linux - Generic (glibc 2.5) (x86, 32-bit)html

     
  2.  解壓32位安裝包:

    進入安裝包所在目錄,執行命令:tar  -zxvf  mysql-5.6.17-linux-glibc2.5-i686.tar.gznode

     

    因爲MySQL運行須要libaio1庫,因此須要運行如下命令進行安裝:mysql

    sudo apt-get install libaio1
     
  3.  複製解壓後的mysql目錄到系統的本地軟件目錄:

    執行命令:cp mysql-5.6.17-linux-glibc2.5-i686 /usr/local/mysql  -rlinux

    注意:目錄結尾不要加/sql

     
     
  4.  添加系統mysql組和mysql用戶:

    執行命令:groupadd mysql   和 useradd -r -g mysql mysql數據庫

     
     
     
  5.  安裝數據庫:

    進入安裝mysql軟件目錄:執行命令 cd /usr/local/mysqlvim

    修改當前目錄擁有者爲mysql用戶:執行命令 chown -R mysql:mysql ./windows

    安裝數據庫:執行命令 ./scripts/mysql_install_db --user=mysqlcentos

    修改當前目錄擁有者爲root用戶:執行命令 chown -R root:root ./服務器

    修改當前data目錄擁有者爲mysql用戶:執行命令 chown -R mysql:mysql data

    到此數據庫安裝完畢

     
     
  6.  啓動mysql服務和添加開機啓動mysql服務:

    添加開機啓動:執行命令cp support-files/mysql.server /etc/init.d/mysql,把啓動腳本放到開機初始化目錄

    啓動mysql服務:執行命令service mysql start

    執行命令:ps -ef|grep mysql 看到mysql服務說明啓動成功,如圖

     
     
  7.  修改mysql的root用戶密碼,root初始密碼爲空的:

    執行命令:./bin/mysqladmin -u root password '密碼'

     
     
  8. 把mysql客戶端放到默認路徑:

    ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql

    注意:建議使用軟鏈過去,不要直接包文件複製,便於系統安裝多個版本的mysql

 

注意問題:

自我感受mysql 5.7這一系列的版本都很變態啊,不論是windows的仍是Linux,安裝的時候總會出些莫名其妙的想法。當初在windows下安裝mysql的時候,年輕不懂事下了5.7版本的,結果出現了各類難以捉摸的bug,在網上查也找不到,最後發現一個同病相憐的人訴說是版本問題,裝成5.6就行了。而此次裝linux的,年少輕狂的我忘記了windows下的教訓,裝了5.7,結果一直出現各類bug,哎,仍是太年輕了。但願你們能吸收教訓吧。

 

9.安裝完後的使用

安裝完之後,你們能夠輸入mysql -uroot -p,而後enter password來進入mysql。

進去後可使用mysql的各類語法,首先能夠查看database:show databases。

 

10:遠程用戶創建

grant all privileges on *.* to '新用戶名'@'%' identified by '新密碼';
flush privileges;

11:添加系統路徑

vim /etc/profile export PATH=/usr/local/mysql/bin:$PATH source /etc/profile

 

 

Linux下mysql的卸載:

一、查找之前是否裝有mysql

命令:rpm -qa|grep -i mysql

能夠看到mysql的兩個包:

mysql-4.1.12-3.RHEL4.1

mysqlclient10-3.23.58-4.RHEL4.1

二、刪除mysql

刪除命令:rpm -e --nodeps 包名

( rpm -ev mysql-4.1.12-3.RHEL4.1 )

三、刪除老版本mysql的開發頭文件和庫

檢查各個mysql文件夾是否刪除乾淨

find / -name mysql

結果以下:

/var/lib/mysql

/usr/local/mysql

/usr/lib/mysql

/usr/include/mysql

命令:

rm -fr /usr/lib/mysql

rm -fr /usr/include/mysql

注意:卸載後/var/lib/mysql中的數據及/etc/my.cnf不會刪除,若是肯定沒用後就手工刪除

rm -f /etc/my.cnf

rm -fr /var/lib/mysql

 4.刪除mysql用戶及用戶組

 userdel mysql

groupdel mysql

 

Linux下建立和刪除軟連接:

1.先創建一個軟鏈接

複製代碼
1 [root@rekfan.com test]# ls -il
 2 總計  0
 3 1491138 -rw-r–r– 1 root root 48 07-14 14:17 file1
 4 1491139 -rw-r–r– 2  root root 0 07-14 14:17 file2
 5 1491139 -rw-r–r– 2 root root 0 07-14 14:17  file2hand
 6 #創建file1和file1soft軟鏈接
 7 [root@rekfan.com test]# ln -s file1  file1soft
 8 [root@rekfan.com test]# ls -il
 9 總計 0
10 1491138 -rw-r–r– 1 root  root 48 07-14 14:17 file1
11 1491140 lrwxrwxrwx 1 root root 5 07-14 14:24  file1soft -> file1
12 1491139 -rw-r–r– 2 root root 0 07-14 14:17  file2
13 1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
複製代碼

其中,ln -s file1 filesoft 中的file1就是源文件,file1soft就是目標連接文件名,其做用是當進入filesoft目錄,其實是連接進入了file1目錄

2.刪除上面創建的軟鏈接

複製代碼
1 [root@rekfan.com test]# ls -il
 2 總計  0
 3 1491138 -rw-r–r– 1 root root 0 07-14 14:17 file1
 4 1491140 lrwxrwxrwx 1  root root 5 07-14 14:24 file1soft -> file1
 5 1491139 -rw-r–r– 2 root root 0  07-14 14:17 file2
 6 1491139 -rw-r–r– 2 root root 0 07-14 14:17  file2hand
 7 #刪除軟鏈接
 8 [root@rekfan.com test]# rm -rf file1soft
 9 [root@rekfan.com test]#  ls -il
10 總計 0
11 1491138 -rw-r–r– 1 root root 0 07-14 14:17 file1
12 1491139  -rw-r–r– 2 root root 0 07-14 14:17 file2
13 1491139 -rw-r–r– 2 root root 0 07-14  14:17 file2hand
複製代碼

 

 

啓動mysql時顯示:/tmp/mysql.sock 不存在的解決方法

複製代碼
1 [root@localhost mysql]# bin/mysqladmin -u root password root
2 bin/mysqladmin: connect to server at 'localhost' failed
3 error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)'
4 Check that mysqld is running and that the socket: '/tmp/mysql.sock' exists!
5 [root@localhost mysql]# bin/mysql -u root -p
6 Enter password:
7 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
8 分析:是/tmp/mysql.sock 不存在
複製代碼

因爲搜索的mysql.sock路徑是在/tmp下,而mysql安裝的mysql.sock在/var/lib/mysql下,因此選擇創建符號(軟)鏈接:

複製代碼
1 # ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
2 # bin/mysql -u root
3 Welcome to the MySQL monitor. Commands end with ; or g.
4 Your MySQL connection id is 1
5 Server version: 5.0.45 MySQL Community Server (GPL)
6 Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
7 mysql>
複製代碼

 

安裝mysql報錯:FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:Data::Dumper

解決方法 :安裝autoconf庫
命令:yum-y install autoconf   //此包安裝時會安裝Data:Dumper模塊

 

Centos 7以上啓動mysql報錯:Starting MySQL. ERROR! The server quit without updating PID file (/var/lib/mysql/bj-dev2.pid).

一、多是/usr/local/mysql/data/mysql.pid文件沒有寫的權限
解決方法 :給予權限,執行 「chown -R mysql:mysql /var/data」 「chmod -R 755 /usr/local/mysql/data」  而後從新啓動mysqld!

二、可能進程裏已經存在mysql進程
解決方法:用命令「ps -ef|grep mysqld」查看是否有mysqld進程,若是有使用「kill -9  進程號」殺死,而後從新啓動mysqld!

三、多是第二次在機器上安裝mysql,有殘餘數據影響了服務的啓動。
解決方法:去mysql的數據目錄/data看看,若是存在mysql-bin.index,就趕快把它刪除掉吧,它就是罪魁禍首了。

四、mysql在啓動時沒有指定配置文件時會使用/etc/my.cnf配置文件,請打開這個文件查看在[mysqld]節下有沒有指定數據目錄(datadir)。
解決方法:請在[mysqld]下設置這一行:datadir = /usr/local/mysql/data

五、skip-federated字段問題
解決方法:檢查一下/etc/my.cnf文件中有沒有沒被註釋掉的skip-federated字段,若是有就當即註釋掉吧。

六、錯誤日誌目錄不存在。(本人是這個方法解決的)
解決方法:使用「chown」 「chmod」命令賦予mysql全部者及權限

七、selinux惹的禍,若是是centos系統,默認會開啓selinux
解決方法:關閉它,打開/etc/selinux/config,把SELINUX=enforcing改成SELINUX=disabled後存盤退出重啓機器試試。

 
 
 二:開啓mysql binlog 日誌記錄
 

    binlog日誌,即binary log,是二進制日誌文件。它有兩個做用,一是增量備份,即只備份新增的內容;二是用於主從複製等,即主節點維護了一個binlog日誌文件,從節點從binlog中同步數據。咱們能夠經過binlog日誌恢復數據。下面就介紹一下開啓MySQL binlog日誌的過程:

一、登陸MySQL,查看binlog日誌的狀態
 登陸MySQL後,輸入show variables like '%log_bin%';查看到binlog日誌爲OFF關閉狀態;

 

 

 

 

二、開啓MySQL binlog日誌

使用vi編輯器修改MySQL的my.cnf配置文件
vi /etc/my.cnf
server_id=2 #log日誌文件存放位置 log_bin = /var/bin/mysql/mysql-bin binlog_format = ROW expire_logs_days = 30

 

 

 注意:每次服務器(數據庫)重啓,服務器會調用flush logs;,新建立一個binlog日誌

 
進入上面配置的日誌存儲位置查看日誌:
cd  /var/bin/mysql/mysql-bin

 

 數據恢復語法:

恢復語法 恢復命令的語法格式: mysqlbinlog mysql-bin.0000xx | mysql -u用戶名 -p密碼 數據庫名 經常使用參數選項解釋: --start-position=780 起始pos點 --stop-position=904 結束pos點 --start-datetime="2019-3-27 12:04:08" 起始時間點 --stop-datetime="2019-3-27 12:49:46" 結束時間點 --database=my_test 指定只恢復my_test數據庫(一臺主機上每每有多個數據庫,只限本地log日誌) !!!!Ubuntu我沒用熟悉吧 牢記 在mysqlbinlog和mysq前面都要加上sudo!!!! For example 指定pos結束點恢復(部分恢復) 恢復到780節點 sudo mysqlbinlog mysql-bin.000002 --stop-position 780 | sudo mysql -uroot -p my_test

binlog 日誌文件轉sql

 進入mysql 的安裝目錄bin 目錄執行----》mysql-bin.000011的文件路徑

mysqlbinlog  --base64-output=decode-rows -v  mysql-bin.000011 -d db1  > db1.sql      //將row格式的binlog日誌文件base64解析後轉入文件,-v表明換行展現

 

 

mysqlbinlog  --start-date="2017-08-12 15:00:19" --stop-date="2017-08-12 15:30:19"  mysql-bin.000011 -d db1  > db1.sql      //選擇時間範圍導出

 

 

 

 

數據恢復:

 http://www.javashuo.com/article/p-ninjtfnf-be.html

相關文章
相關標籤/搜索