參考:
一、主要安裝
https://blog.csdn.net/a_bang/article/details/52465110
二、linux下mysql默認安裝目錄和常用命令
https://blog.csdn.net/qq_41076797/article/details/90573047
三、mysql的卸載方式
https://www.cnblogs.com/taomylife/p/7234925.html
四、現在版本已經沒有my_default.cnf文件,
(https://blog.csdn.net/djcode/article/details/78621772)
五、 mysql報錯:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'
處理方法:https://www.jb51.net/article/174244.htm
*******************************************************************************
mysql安裝有兩種:源碼自編譯安裝和編譯過的二進制文件進行安裝。后一種方法相比源碼安裝,節省了半個小時的編譯時間,只需要合理配置即可。至於其他的優劣,歡迎大家討論。網上有很多教程,但是對於想要把mysql安裝到指定路徑的博文卻很少,而且還有很多漏洞。為了以后安裝方便,抽了點時間整理了一下,既方便大家,也方便自己。本文使用mysql最新版本5.7.15作為研究對象,如有問題,歡迎指正。可以先看一遍博文,第二遍直接按文中代碼,五分鍾就可以搞定,當然前提是要先准備好工具材料。
環境:centos 6.5、mysql 5.7.15 64位
(mysql下載地址:http://dev.mysql.com/downloads/mysql/)
1、下載安裝包 :
進去mysql官網,下載需要的版本,如下圖
這里寫圖片描述
這里寫圖片描述
2、下載之后,上傳到服務器上要安裝的目錄中,或者是使用wget,但是由於文件過大(600M),所以我采用本地下載再上傳。然后解壓壓縮文件,解壓過程有點耗時,耐心等待。然后重命名為mysql,並且在mysql下面新建目錄data,作為mysql的數據存儲目錄。本次安裝,我在usr下新建了mylocal文件夾。
[root@ZhOu mylocal]# tar -xf mysql-5.7.15-linux-glibc2.5-x86_64.tar
[root@ZhOu mylocal]# tar -zxf mysql-5.7.15-linux-glibc2.5-x86_64.tar.gz
[root@ZhOu mylocal]# mv mysql-5.7.15-linux-glibc2.5-x86_64 mysql
[root@ZhOu mylocal]# cd mysql
[root@ZhOu mysql]# mkdir data
1
2
3
4
5
這里寫圖片描述
3、創建mysql用戶組,創建之后,可以查看是否創建成功
[root@ZhOu /]# groupadd mysql
[root@ZhOu /]# useradd -r -g mysql mysql
[root@ZhOu /]# cat /etc/group | grep mysql
1
2
3
這里寫圖片描述
4、賦權,更改所屬的組和用戶:
[root@ZhOu mylocal]# chown -R mysql.mysql /usr/mylocal/mysql
[root@ZhOu mylocal]# chown -R mysql.mysql /usr/mylocal/mysql/data
[root@ZhOu mylocal]# chgrp -R mysql /usr/mylocal/mysql
1
2
3
5、進入mysql文件夾,復制support-files文件下的my-default.cnf和mysql.server,如下:
[root@ZhOu mysql]# cp support-files/my-default.cnf /etc/my.cnf
[root@ZhOu mysql]# cp support-files/mysql.server /etc/init.d/mysqld
1
2
這里寫圖片描述
6、編輯mysqld,修改為指定路徑:
[root@ZhOu mysql]# vi /etc/init.d/mysqld
1
這里寫圖片描述
7、把mysql路徑添加到環境變量中,方便操作命令:
[root@ZhOu mysql]# vi /etc/profile
1
文件末尾添加export MYSQL=/usr/mylocal/mysql,path中加入$MYSQL/bin: 。
這里寫圖片描述
8、使修改后的profile文件生效:
[root@ZhOu mysql]# source /etc/profile
1
9、執行數據庫初始化操作,執行文件為mysql下bin文件夾中mysql_install_db,basedir為安裝目錄,datadir為數據文件目錄。注:mysql_install_db在5.6版本中位於scripts文件夾,5.7已經取消該文件夾,合並到bin下。
[root@ZhOu bin]# ./mysql_install_db --basedir=/usr/mylocal/mysql --user=mysql --datadir=/usr/mylocal/mysql/data
1
2
這里寫圖片描述
10、完成之后,啟動mysql服務:
[root@ZhOu bin]# service mysqld start
1
這里寫圖片描述
此時已經可以啟動服務,但整個工程只算完成了一半。
注意:新版的可能會報錯,因為mysqld_safe的原因,舊版本安裝的時候沒有報錯,只需要把mysqld_safe中的默認路徑修改為自己的目標路徑,再執行就可以了。
這里寫圖片描述
11、修改密碼:首先關閉服務,把mysql/bin/mysqld_safe中usr/local/mysql換成指定安裝的路徑名,然后執行下面代碼。
[root@ZhOu bin]# service mysqld stop
[root@ZhOu bin]# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
1
2
3
這里寫圖片描述
此時已經進入免過濾狀態,開始修改root密碼。注:5.6版本user表中密碼字段是password,5.7之后改為authentication_string,不再有password。
[root@ZhOu bin]# mysql
mysql> use mysql;
mysql> update user set authentication_string=PASSWORD('root') where user='root';
mysql> flush privileges;
mysql> exit;
1
2
3
4
5
這里寫圖片描述
12、此時,密碼已經修改完成。退出重新登錄,本以為搞定了,但是創建數據庫,卻報錯了,錯誤是:ERROR 1820 (HY000): You must reset your password using ALTER USER statement。原來第一登錄,還要再次設置密碼,無語!修改之后,創建成功。
mysql> alter user 'root'@'localhost' identified by 'root';
mysql> flush privileges;
mysql> exit;
1
2
3
這里寫圖片描述
使用 SET PASSWORD = PASSWORD(‘root’)來修改密碼也是可以的。
13、工程完成一大半了,此時如果遠程連接登錄,會報錯誤的。如下:
這里寫圖片描述
下面修改遠程連接權限,很簡單,只需要修改user表中root用戶的host就可以了。改完之后,記得重啟一下服務,再次遠程連接,搞定!
mysql> use mysql;
mysql> select user,host from user;
mysql> update user set host='%' where user='root';
1
2
3
這里寫圖片描述
這里寫圖片描述
這里寫圖片描述
14、設置mysql開機自啟動:
[root@ZhOu ~]# chkconfig mysqld on
1
15、測試了一下功能,都沒什么問題。使用mysqldump的時候,卻有點小意外。
[root@ZhOu /]# mysqldump -uroot -proot mysql > mysql.dump
mysqldump: [Warning] Using a password on the command line interface can be insecure.
1
2
找了一下原因,設置一下etc/my.cnf即可。如下:
[root@ZhOu /]# vi etc/my.cnf
1
2
這里寫圖片描述
保存之后,運行如下代碼,一切OK!
[root@ZhOu /]# mysqldump mysql > mysql.dump
1
這里寫圖片描述
16、設置編碼:
由於是免安裝,字符集是默認的latin1,所以就需要動手設置一下了。首先看下一編碼:
mysql> show variables like '%character%'
1
就可以看到當前系統的編碼。然后手工設置一下就行了,打開etc/my.cnf,在[mysqld]下面添加以下兩行代碼就行了。
character_set_server = utf8
collation_server = utf8_general_ci
1
2
這里寫圖片描述
17、到此,mysql已經安裝結束了。如果有什么錯誤的地方,歡迎批評指正。同時希望大家能夠多提意見加入其中,使其更快更完善。
————————————————