Linux下的mysql安裝【快速版】

前言
【廢話】因爲要寫一個linux論文,我正好也學過MYSQL,在Windows下安裝MYSQL好多次包括圖形界面navicat,詳請訪問Windows下的MYSQL安裝,linux論文太難想了!!!因爲我們只學了一些基礎不能再基礎,簡單不能再簡單的命令,想要深度的寫東西,簡直太難了!!wu~想了三天的題目,終於決定從MYSQL入手!
【正文】先說一下本人電腦的配置:win7、VMware Workstation、centos
參考菜鳥教程的MYSQL安裝,真的是太垃圾,都是錯誤!!連括號要加轉義符號都沒有,還有致命的錯誤是在配置文件中!!天知道出了錯誤我是百度百度的搜,一行代碼一行代碼的改…
廢話不多說,我是在菜鳥教程的基礎上改進的,避免了一些不必要的錯誤,不過菜鳥提供的壓縮包是沒有問題的,這點值得一看。
【安裝前期工具】
一、安裝編譯工具及庫文件
直接在linux終端敲入下面的代碼

$ yum -y install gcc gcc-c++ make autoconf libtool-ltdl-devel gd-devel freetype-devel libxml2-devel libjpeg-devel libpng-devel openssl-devel curl-devel bison patch unzip libmcrypt-devel libmhash-devel ncurses-devel sudo bzip2 flex libaio-devel

二、 安裝cmake 編譯器
cmake 版本:cmake-3.1.1。
1、下載地址:http://www.cmake.org/files/v3.1/cmake-3.1.1.tar.gz
(Windows下)
菜鳥上是用的wget,不過我試了試,發現報錯

$ wget http://www.cmake.org/files/v3.1/cmake-3.1.1.tar.gz

後來搜了搜,下面的代碼通過了,可能會出現沒有許可證的問題,需要加https

$ sudo wget --no-check-certificate https://www.cmake.org/files/v3.1/cmake-3.1.1.tar.gz

參考博客爲:https://blog.csdn.net/popi2268/article/details/82886540
報錯:ERROR: certificate common name “www.mysql.com” doesn’t match requested host name “137.254.60.11”.
也可以有個簡單又粗暴的方法,只要不嫌麻煩,就是現在Windows下下載後安裝包,然後複製粘貼到linux下,到時候只需要解壓就好啦,哈哈哈,如果文件過大,不建議這麼做。
2、解壓安裝包

$ tar zxvf cmake-3.1.1.tar.gz

3、進入安裝包目錄

$ cd cmake-3.1.1

4、編譯安裝

$ ./bootstrap
$ make && make install

三、安裝 MySQL
MySQL版本:mysql-5.6.15。
1、下載地址: http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15.tar.gz
(Windows下)
菜鳥上是用的wget,不過我試了試,發現報錯

$ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15.tar.gz

後來搜了搜,下面的代碼通過了,可能會出現沒有許可證的問題,需要加https

 $ sudo wget --no-check-certificate https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15.tar.gz

也可以有個簡單又粗暴的方法,只要不嫌麻煩,就是現在Windows下下載後安裝包,然後複製粘貼到linux下,到時候只需要解壓就好啦,哈哈哈,如果文件過大,不建議這麼做。
2、解壓安裝包

$ tar zxvf mysql-5.6.15.tar.gz

3、進入安裝包目錄

$ cd mysql-5.6.15

4、編譯安裝

$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql/ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_INNODB_MEMCACHED=1 -DWITH_DEBUG=OFF -DWITH_ZLIB=bundled -DENABLED_LOCAL_INFILE=1 -DENABLED_PROFILING=ON -DMYSQL_MAINTAINER_MODE=OFF -DMYSQL_DATADIR=/usr/local/webserver/mysql/data -DMYSQL_TCP_PORT=3306
$ make && make install

注意:!!一定要時刻觀察終端有沒有出來報錯信息!!我的好像這一步出現報錯了,意思是我沒有權限,要以su的身份進入!!如果出現這樣的信息,一定現以su的身份進入!然後重新執行該命令!切記!
5、查看mysql版本:

$ /usr/local/webserver/mysql/bin/mysql --version

到此,mysql安裝完成。
四、MySQL 配置
1、創建mysql運行使用的用戶mysql:

$ /usr/sbin/groupadd mysql
$ /usr/sbin/useradd -g mysql mysql

2、創建binlog和庫的存儲路徑並賦予mysql用戶權限

$ mkdir -p /usr/local/webserver/mysql/binlog /www/data_mysql
$ chown mysql.mysql /usr/local/webserver/mysql/binlog/ /www/data_mysql/

3、創建my.cnf配置文件【將/etc/my.cnf替換爲下面內容】
【注意!!這個配置文件的錯誤因人而異,主要看你後面報錯的文件在哪,然後把路徑也改到哪】
舉個例子,比如我後來報錯的內容爲下圖,那我把/etc/my.cnf文件中的datadir
在這裏插入圖片描述
在這裏插入圖片描述
改爲:

datadir=/usr/local/webserver/mysql

就不會出現上面的錯誤了!!但現在請不要着急,先不要急着改配置文件datadir的路徑,因爲我不知道你是否安裝的目錄和我的一樣!!我先給你我的路徑配置正確的/etc/my.cnf文件,如果後來的你也報錯了,注意改路徑!!
適合我的配置文件:

$ cat /etc/my.cnf

[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-ignore-db = information_schema
user = mysql
port = 3306
socket = /tmp/mysql.sock
basedir = /usr/local/webserver/mysql
datadir = /usr/local/webserver/mysql
log-error = /usr/local/webserver/mysql/mysql_error.log
pid-file = /usr/local/webserver/mysql/mysql.pid
open_files_limit = 65535
back_log = 600
max_connections = 5000
max_connect_errors = 1000
table_open_cache = 1024
external-locking = FALSE
max_allowed_packet = 32M
sort_buffer_size = 1M
join_buffer_size = 1M
thread_cache_size = 600
#thread_concurrency = 8
query_cache_size = 128M
query_cache_limit = 2M
query_cache_min_res_unit = 2k
default-storage-engine = MyISAM
default-tmp-storage-engine=MYISAM
thread_stack = 192K
transaction_isolation = READ-COMMITTED
tmp_table_size = 128M
max_heap_table_size = 128M
log-slave-updates
log-bin = /usr/local/webserver/mysql/binlog/binlog
binlog-do-db=oa_fb
binlog-ignore-db=mysql
binlog_cache_size = 4M
binlog_format = MIXED
max_binlog_cache_size = 8M
max_binlog_size = 1G
relay-log-index = /usr/local/webserver/mysql/relaylog/relaylog
relay-log-info-file = /usr/local/webserver/mysql/relaylog/relaylog
relay-log = /usr/local/webserver/mysql/relaylog/relaylog
expire_logs_days = 10
key_buffer_size = 256M
read_buffer_size = 1M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover
interactive_timeout = 120
wait_timeout = 120
skip-name-resolve
#master-connect-retry = 10
slave-skip-errors = 1032,1062,126,1114,1146,1048,1396
#master-host = 192.168.1.2
#master-user = username
#master-password = password
#master-port = 3306
server-id = 1
loose-innodb-trx=0 
loose-innodb-locks=0 
loose-innodb-lock-waits=0 
loose-innodb-cmp=0 
loose-innodb-cmp-per-index=0
loose-innodb-cmp-per-index-reset=0
loose-innodb-cmp-reset=0 
loose-innodb-cmpmem=0 
loose-innodb-cmpmem-reset=0 
loose-innodb-buffer-page=0 
loose-innodb-buffer-page-lru=0 
loose-innodb-buffer-pool-stats=0 
loose-innodb-metrics=0 
loose-innodb-ft-default-stopword=0 
loose-innodb-ft-inserted=0 
loose-innodb-ft-deleted=0 
loose-innodb-ft-being-deleted=0 
loose-innodb-ft-config=0 
loose-innodb-ft-index-cache=0 
loose-innodb-ft-index-table=0 
loose-innodb-sys-tables=0 
loose-innodb-sys-tablestats=0 
loose-innodb-sys-indexes=0 
loose-innodb-sys-columns=0 
loose-innodb-sys-fields=0 
loose-innodb-sys-foreign=0 
loose-innodb-sys-foreign-cols=0

slow_query_log_file=/usr/local/webserver/mysql/mysql_slow.log
long_query_time = 1
[mysqldump]
quick
max_allowed_packet = 32M

你應該知道cat 文件名是查看該文件吧,vi 文件名是編譯該文件這麼簡單的文件替換你應該會吧~還有vi進入該文件編譯的時候,要注意退出時先按幾下ESC鍵,然後輸入:接着按wq安全退出,如果你直接關終端的話,呵呵,你的文件就【死了】,給自己造成不必要的麻煩!或者你直接找到 /etc/my.cnf這個文件,打開後文件替換,我前一種說的是用命令在終端中改的。【我嫩老師講這個安全退出,強烈要求我們記住!太闊怕@_@】
4、初始化數據庫
說起這個初始數據庫,我就快氣死了,菜鳥上給的命令,,我,報錯啊!先看菜鳥上的命令。

$/usr/local/webserver/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf  --user=mysql

如果你也報錯的話,我用的是下面的命令:

$/usr/local/webserver/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/webserver/mysql/ --user=mysql

參考:https://blog.csdn.net/weixin_30783913/article/details/94879594
顯示如下信息:

Installing MySQL system tables...2015-01-26 20:18:51 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
OK

Filling help tables...2015-01-26 20:18:57 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
OK
...

如果你成功出現以上信息恭喜你!!你已經安裝好一大半了!但不要驕傲,可能還有問題等着你來解決,加油!
5、創建開機啓動腳本

$ cd /usr/local/webserver/mysql/
$ cp support-files/mysql.server /etc/rc.d/init.d/mysqld 
$ chkconfig --add mysqld 
$ chkconfig --level 35 mysqld on

6、啓動mysql服務器

$ service mysqld start

差不多99%的小夥伴都栽跟頭到了這個地方,沒錯,,我一開始也沒有連接成功,讓我氣的啊!百度上說的五花八門,我恨不得把我的虛擬機卸載了,不甘心,爲了安裝它,我差不多花費了一下午的時間!!後來冷靜想了想,找到了問題所在。
報錯:
在這裏插入圖片描述
第一、就是我前面所說的配置文件/etc/my.cnf的事情,我已經改過來了,因爲/etc/my.cnf文件中沒有我報錯的路徑,ok。
第二、selinux惹的禍,如果是centos系統,默認會開啓selinux
解決方法:關閉它,打開/etc/selinux/config,把SELINUX=enforcing改爲
SELINUX=disabled
後存盤退出重啓機器試試。
在這裏插入圖片描述

我差不多是這兩個錯誤,如果你這樣操作還是沒有連接成功,更多錯誤請參考:https://blog.csdn.net/zhou75771217/article/details/82893997
也是沒辦法的事,錯誤這個方面有很多,也可能是你的磁盤滿了,我也愛莫能助,祝願你們在這一步都能連接成功!@#@

7、連接 MySQL

$ /usr/local/webserver/mysql/bin/mysql -u root -p

在這裏插入圖片描述
第一次進入不需要密碼,root進入纔不需要密碼
想設置密碼請參考
https://zhidao.baidu.com/question/1818956186226741508.html
本人比較懶,寫到這就不想動啦~
其他命令

啓動:service mysqld start
停止:service mysqld stop
重啓:service mysqld restart
重載配置:service mysqld reload

修改MySQL用戶密碼

mysqladmin -u用戶名 -p舊密碼 password 新密碼

或進入mysql命令行

SET PASSWORD FOR '用戶名'@'主機' = PASSWORD(‘密碼');
這裏的括號可能需要轉義字符\,我就不改了,聰明的你們應該知道怎麼加了吧,嘿

創建新用戶並授權:

grant all privileges on *.* to 用戶名@'%' identified by '密碼' with grant option;   
發佈了68 篇原創文章 · 獲贊 24 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章