1. 程式人生 > >Linux下MySQL 5.5.12原始碼編譯安裝.

Linux下MySQL 5.5.12原始碼編譯安裝.

本文部分是網上搜索得到,但是合併幾個不同方法,解決了幾個遇到的問題。並且把解決方法一併貼到安裝步驟中,希望能夠有參考作用。

選擇mysql5.5.12,目前是比較穩定的一個版本。

安裝步驟:

1、安裝cmake安裝

安裝cmake

tar -zxvf cmake-2.8.4.tar.gz
 cd cmake-2.8.4
./configure

make && make install

2、安裝mysql

下載mysql-5.5.12.tar.gz

tar zxvf mysql-5.5.12.tar.gz
cd mysql-5.5.12
mkdir -p /usr/local/mysql/
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/data/mysql/data \
-DMYSQL_USER=mysql
make
make install

chmod +w /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18

mkdir -p /data/mysql/
mkdir -p /data/mysql/data/
mkdir -p /data/mysql/log/
chown -R mysql:mysql /data/mysql/

cd support-files/

刪除以前可能存在mysql.cnf
rm -fr /etc/my.cnf
cp my-large.cnf /data/mysql/my.cnf

cp my-large.cnf /etc/my.cnf
cp mysql.server /etc/init.d/mysqld

編輯/etc/my.cnf

開啟這個檔案檢視在[mysqld]節下有沒有指定資料目錄(datadir)

解決方法:請在[mysqld]下設定這一行:datadir =/usr/local/mysql/data

新增mysql使用者
groupadd mysql
useradd -g mysql mysql
chown mysql.mysql -R /usr/local/mysql/data/mysql/

初始化配置:

進入安裝路徑

cd /usr/local/mysql

進入安裝路徑,執行初始化配置指令碼,建立系統自帶的資料庫和衿/p>

scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
如果出現permission錯誤,執行:chmod 777 scripts/mysql_install_db.sh

新增開機啟動

cp support-files/mysql.server /etc/init.d/mysql

chmod +x /etc/init.d/mysqld
vi /etc/init.d/mysqld 

新增:
basedir=/usr/local/mysql
datadir=/data/mysql/data

chkconfig mysql on

chkconfig --add mysqld
chkconfig --level 345 mysqld on

service mysql start  --啟動MySQL

如果上述啟動不起來,刪除/data/mysql/data下的mysql-bin.index。再不行,參考最後面。可能會是7個原因造成。

配置使用者

MySQL啟動成功後,root預設沒有密碼,我們需要設定root密碼/p>

設定之前,我們需要先設定PATH,要不不能直接呼叫mysql

修改/etc/profile檔案,在檔案末尾新增

PATH=/usr/local/mysql/bin:$PATH
export PATH

現在,我們可以在終端內直接輸入mysql進入,mysql的環境了

執行下面的命令修改root密碼

mysql -uroot
mysql> SET PASSWORD = PASSWORD('123456');

執行上述mysql命令,可能報命令mysql找不到(mysql: command not found),執行:ln -s /usr/local/mysql/bin/mysql /usr/bin

上述方法還不行,那麼ps–ef | grep mysql後,kill兩個程序後。再次mysql –uroot成功。

若要設定root使用者可以遠端訪問,執行

mysql> GRANT ALL PRIVILEGES ON *.* TO [email protected] IDENTIFIED BY 'password' WITH GRANT OPTION;

紅色的password為遠端訪問時,root使用者的密碼,可以和本地不同

紅色的anyip表示執行的ip,如果為任何ip,則設為’%’。

配置防火墿/h3>

防火牆的3306埠預設沒有開啟,若要遠端訪問,需要開啟這個端叿/p>

開啟/etc/sysconfig/iptables

AINPUT –m state --state NEW –m tcp –p –dport 22 –j ACCEPT”,下新增:

-A RH-Firewall-1-INPUT-m statestate NEW -m  tcp -p tcpdport 3306 -j ACCEPT

然後儲存,並關閉該檔案,在終端內執行下面的命令,重新整理防火牆配置:

service iptables restart

注意上述防火牆沒有設定好的話,會造成遠端連線不上。

完成!!!!!!!!!!!!!!!!!!!!!!

附:提示&問題解決方法:

1、建立系統自帶的資料庫和表成功後輸出:

WARNING:The host '10.15.107.93' could not be looked up with resolveip.

Thisprobably means that your libc libraries are not 100 % compatible

withthis binary MySQL version. The MySQL daemon, mysqld, should work

normallywith the exception that host name resolving will not work.

Thismeans that you should use IP addresses instead of hostnames

whenspecifying MySQL privileges !

InstallingMySQL system tables...

OK

Fillinghelp tables...

OK

Tostart mysqld at boot time you have to copy

support-files/mysql.serverto the right place for your system

PLEASEREMEMBER TO SET A PASSWORD FOR THE MySQL root USER !

Todo so, start the server, then issue the following commands:

/usr/local/mysql/bin/mysqladmin-u root password 'new-password'

/usr/local/mysql/bin/mysqladmin-u root -h 10.15.107.93 password 'new-password'

Alternativelyyou can run:

/usr/local/mysql/bin/mysql_secure_installation

whichwill also give you the option of removing the test

databasesand anonymous user created by default. This is

stronglyrecommended for production servers.

Seethe manual for more instructions.

Youcan start the MySQL daemon with:

cd/usr/local/mysql ; /usr/local/mysql/bin/mysqld_safe &

Youcan test the MySQL daemon with mysql-test-run.pl

cd/usr/local/mysql/mysql-test ; perl mysql-test-run.pl

Pleasereport any problems with the /usr/local/mysql/scripts/mysqlbug script!

-------------------------------------------------------------------

2、service mysql start執行後,如果成功輸出:

startingMySQL.[  OK  ]

如果失敗,可能彈出StartingMySQL.. ERROR! The server quit without updating PID file(/usr/local/mysql/data/AY1403221420500563ebZ.pid).錯誤,參考本文後面的7種解決方法,基本上按照7種方法走過後,最後問題都可以解決。本人經驗。

-------------------------------------------------------------------

3、檢查path:

命令:$pathexport

輸出:

declare-xCLASSPATH=".:/opt/jdk1.7.0_51/lib:/opt/jdk1.7.0_51/jre/lib:.:/opt/jdk1.6.0_34/lib/dt.jar:/opt/jdk1.6.0_34/lib/tools.jar"

declare-x CVS_RSH="ssh"

declare-x G_BROKEN_FILENAMES="1"

declare-x HISTSIZE="1000"

declare-x HOME="/root"

declare-x HOSTNAME="10.15.107.93"

declare-x INPUTRC="/etc/inputrc"

declare-x JAVA_HOME="/opt/jdk1.7.0_51"

declare-x LANG="en_US.UTF-8"

declare-x LD_LIBRARY_PATH=":/opt/CalculationUnit/lib:/opt/jdk1.6.0_34/jre/lib/amd64/server"

declare-x LESSOPEN="|/usr/bin/lesspipe.sh %s"

declare-x LOGNAME="root"

declare-x LS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:"

declare-x MAIL="/var/spool/mail/root"

declare-x OLDPWD="/usr/local/mysql/data"

declare-xPATH="/usr/local/mysql/bin:/opt/jdk1.6.0_34/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/php/bin:/root/bin:/opt/jdk1.7.0_51/bin:/opt/jdk1.7.0_51/jre/bin"

declare-x PWD="/usr/local/mysql"

declare-x SHELL="/bin/bash"

declare-x SHLVL="1"

declare-x SSH_ASKPASS="/usr/libexec/openssh/gnome-ssh-askpass"

declare-x SSH_CLIENT="10.15.63.225 14565 22"

declare-x SSH_CONNECTION="10.15.63.225 14565 10.15.107.93 22"

declare-x SSH_TTY="/dev/pts/5"

declare-x TERM="vt100"

declare-x USER="root"

---------------------------------------------------------------------------------------

4、防火牆重啟後,輸出如下表示成功:

Flushingfirewall rules: [  OK  ]

Settingchains to policy ACCEPT: filter [ OK  ]

Unloadingiptables modules: [  OK  ]

Applyingiptables firewall rules: [  OK  ]

Loadingadditional iptables modules: ip_conntrack_netbios_ns [  OK  ]

如果有語法錯誤,會提示在第幾行出錯。百度下語法,修復即可。

---------------------------------------------------------------------------------------

5、        錯誤情況:

1)在啟動mysql服務時彈出:Starting MySQL.. ERROR!The server quit without updating PID file(/usr/local/mysql/data/AY1403221420500563ebZ.pid).

有7種可能的解決方法,一條一條過吧。本人經過第3、4、7方法後終於解決問題。

1.可能昿usr/local/mysql/data/rekfan.pid檔案沒有寫的許可權
解決方法 :給予許可權,執行 span class="pln" style="border: 0px; margin: 0px;padding: 0px;">chown -R mysql:mysql /var/data/span> “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,就趕快把它刪除掉吧,它就是罪魁禍首了。//blog.rekfan.com/?p=186

4.mysql在啟動時沒有指定配置檔案時會使用/etc/my.cnf配置檔案,請開啟這個檔案檢視在[mysqld]節下有沒有指定資料目彿datadir)。
解決方法:請在[mysqld]下設定這一行:datadir= /usr/local/mysql/data

5.skip-federated欄位問題解決方法:檢查一丿etc/my.cnf檔案中有沒有沒被註釋掉的skip-federated欄位,如果有就立即註釋掉吧。

6.錯誤日誌目錄不存在解決方法:使用“chownchmod”命令賦予mysql所有者及許可權

7.selinux惹的禍,如果是centos系統,預設會開啟selinux解決方法:關閉它,開啟/etc/selinux/config,把SELINUX=enforcing改為SELINUX=disabled後存檔退出重啟機器試試。

2)在執行mysql –uroot時遇到mysql: command not found錯誤。

解決方法:

執行上述mysql命令,可能報命令mysql找不到(mysql: command not found),執行:ln -s /usr/local/mysql/bin/mysql /usr/bin

上述方法還不行,那麼ps–ef | grep mysql後,kill兩個程序後。再次mysql –uroot成功。

3)遇到錯誤can't connect to local mysql server through socket 'tmp/mysql.sock'

解決方法:kill程序,重啟。如果還不行,參考1)的解決方法。

相關推薦

linux mysql 8.0.12版本二進位制安裝教程

mysq安裝步驟:①下載安裝包:wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.12-linux-glibc2.12-x86_64.tar.xz ②解壓縮下載的安裝包:   ----例如:tar -Jxvf

LinuxMySQL 5.5.12原始碼編譯安裝.

本文部分是網上搜索得到,但是合併幾個不同方法,解決了幾個遇到的問題。並且把解決方法一併貼到安裝步驟中,希望能夠有參考作用。選擇mysql5.5.12,目前是比較穩定的一個版本。安裝步驟:1、安裝cmak

保姆級教程——Ubuntu16.04 Server深度學習環境搭建:安裝CUDA8.0,cuDNN6.0,Bazel0.5.4,原始碼編譯安裝TensorFlow1.4.0(GPU版)

寫在前面 本文敘述了在Ubuntu16.04 Server下安裝CUDA8.0,cuDNN6.0以及原始碼編譯安裝TensorFlow1.4.0(GPU版)的親身經歷,包括遇到的問題及解決辦法,也有一些自己的經驗,希望能對讀者有所幫助。期間參考了許多前人的文章,後文會一一附上鍊接,在此先行謝過。在下能力有限,

MySQL5.6.12原始碼編譯安裝詳細過程

本人轉自:http://blog.csdn.net/mchdba/article/details/35994251 1 下載安裝包download tar.gz wget http://download.csdn.net/detail/mchdba/7545037​ ps:

LinuxMySQL原始碼編譯安裝(eg:mysql-5.6.27.tar.gz )

Linux下MySQL原始碼安裝(eg:mysql-5.6.27.tar.gz ): 1:準備MySQL原始碼安裝包: mysql-5.6.27.tar.gz、cmake-3.3.2.tar.gz、ncurses-6.0.tar.gz 注:centos請安裝: yum in

LinuxMySQL 5.5.11原始碼編譯安裝筆記

這篇文章我稍有修改,原文見:http://www.itokit.com/2011/1221/72840.html 1       mysql5.5.11編譯安裝 1.1   裝所需要系統庫相關庫檔

LinuxMySQL 5.55.6和5.7的RPM、二進位制和原始碼安裝

[[email protected] ~]# df -h Filesystem                                Size  Used Avail Use% Mounted on /dev/mapper/vg_rootlhr-Vol00              9.9

LinuxMySQL 5.5.11編譯安裝筆記(完整安裝教程)

MySQL最新的版本5.5.11需要cmake編譯安裝,估計以後的版本也會採用這種方式,網上找了一些安裝方法有些地方是錯的,自己整理一份所以特地記錄一下安裝步驟及過程,以供參考! 1      mysql 5.5.11編譯安裝 1.1     安裝所需要系統庫相關庫檔案

Linuxmysql-5.7.20安裝

版本 symbol 問題 init temporary rar files sans AS 1 參考文檔 https://dev.mysql.com/doc/refman/5.7/en/source-installation.html https://dev.mysql.c

LinuxMySQL 5.7.23無法遠端連線解決方案

MySQL 版本:5.7.23作業系統:Linux問題描述:只能通過Linux系統賬號Root命令列進入資料庫,無法使用JDBC,遠端連線工具進入資料庫。報錯:ERROR 1698 (28000): Access denied for user 'root'@'localhost'這個問題明顯就是沒有開放遠端

原始碼編譯安裝MySQL-5.6/mysql-5.6.39------踩了無數坑,重灌了十幾次伺服器才會的,不容易啊!

1.切換到src目錄 cd /usr/local/src/   2. 下載mysql免編譯二進位制包  免編譯的mysql二進位制包5.6原始碼包: wget http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.3

Redhat6.5系統搭建LNMP環境(原始碼編譯

LNMP LNMP代表的就是:Linux系統下Nginx+MySQL+PHP這種網站伺服器架構。 Linux是一類Unix計算機作業系統的統稱,是目前最流行的免費作業系統。。 Nginx是一個高效能的HTTP和反向代理伺服器,也是一個IMAP/POP3/SMTP代理伺服器。 Mysq

01-postgres9.4.5在redhat6.5環境原始碼編譯安裝(2016-11-08)

0讀者須知 1安裝redhat65 2更改本地yum源 4解壓postgres 5安裝依賴包 6增加使用者設定密碼 7開始編譯和安裝postgres 8設定環境變數 9初始化資

LinuxMySQL 5.7的初始化

要用管理員賬號執行。 systemctl start mysql#啟動MySQL服務 mysqld_safe --user=mysql &#啟動MySQL服務(安全方式) mysql -u root -p#登入MySQL(有密碼) mysql -u root#登入MySQL(無密碼) 成功進

LinuxMysql 5.6.30 tar包安裝實踐

環境:centos 6.5 x64 再選擇 下載完畢後,得到安裝包 mysql-5.6.30-linux-glibc2.5-x86_64.tar.gz 此包不再需要make編譯原始碼(真是扛扛的),之前的mysql-5.6.4.tar.gz包是原始碼包,需要先cmake

【Elasticsearch 5.6.12 原始碼】——【3】啟動過程分析(

版權宣告:本文為博主原創,轉載請註明出處! 簡介 本文主要解決以下問題: 1、ES啟動過程中的Node物件都初始化了那些服務? 構造流程 Step 1、建立一個List暫存初始化失敗時需要釋放的資源,並使用臨時的Logger物件輸出開始初始化的日誌。 這裡首先建立了一個List

Linux原始碼編譯安裝Mysql

 下面是在redhat 5.8下原始碼編譯安裝mysql5.6.12  1. 首先檢視系統有沒有安裝Mysql  # rpm -qa |grep mysql    如果系統上有Mysql,先解除安裝  # yum remove mysql 或者 # rpm -e my

Linuxmysql原始碼編譯安裝

1>【安裝依賴包】 yum -y install make gcc-c++ cmake bison-devel ncurses-devel bison perl perl-devel perl perl-devel 2>【解壓mys

linux mysql 5.7 配置 my.cnf(mysqld.cnf)檔案位置 以及具體的配置方式

一、問題 mysql 5.7 版本,/etc/my.cnf  和 /etc/mysql/my.cnf  空空如也,需要自己新增需要的配置,而不能像之前一樣 只要去掉 #號註釋即可。 可以參考djCode的blogMySQL的my.cnf檔案(解決5.7.18下沒有my-d

linuxmysql 5.7.21 安裝

      # tar -zxvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz   解壓      # mv mysql-5.7.21-linux-glibc2.12-x86_64  mysql       重新命名      # c