Hi 大家好,我是鍾義林,昨兒個安裝mysql,遇到了幾個問題,現在打算把問題的解決方法寫出來,和大家分享一下,這次我就不截圖了,下面大家一起看一下
問題:一、CMake Error: The source directory "/opt/mysql-5.7.3-m13-linux-glibc2.5-x86_64" does not appear to contain CMakeLists.txt. 下面是我從crt裏copy出來的
有必要說明一點,我用的系統是centos
Linux localhost.zidonghua1 2.6.32-358.14.1.el6.x86_64 #1 SMP Tue Jul 16 23:51:20 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
===============================================================================
[root@Evil mysql-5.7.3-m13-linux-glibc2.5-x86_64]# cmake .
CMake Error: The source directory "/opt/mysql-5.7.3-m13-linux-glibc2.5-x86_64" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.
[root@Evil mysql-5.7.3-m13-linux-glibc2.5-x86_64]# pwd
/opt/mysql-5.7.3-m13-linux-glibc2.5-x86_64
在解決這個問題前,請允許我吐槽兒一番,我先是在google搜索和搜狗搜索上找了一下(百度基本不靠譜,經過確實,依然是不靠譜),沒有一個可解決的方法,可能是我沒找到,但確實沒有,n多的回答是 你沒有在mysql的安裝目錄裏,pwd指令已經很清楚的說明了我就在mysql的目錄中,可就是不行。後來我在mysql的官方網站上也沒找到解決方法,最終我藉助了“強大”的google翻譯,把官網上的內容一個個的copy進google翻譯裏進行翻譯,最終我解決了這個問題。吐槽到此結束吧。
首先要多說一下,大家一般去mysql的官方網站的時候,都會下載社區版,因爲mysql被oracle收購後,除了社區版都需要付費。所有大家都會下載 mysql community server *.*.** 對吧,這裏我就談如何註冊一個賬號了,下載前會在 select platform:這裏選擇要下載的版本。linux - Generic 這個選項所有下載下來的包很大,而且還沒法用,這裏說明一下,也行是我不會用,不會裝。
解決方法如下,還在http://dev.mysql.com/downloads/mysql/*.*heml#downloads 這個網頁中(我這這個網頁打不開哦*.*是你要下載的版本號) 在select platform 裏選擇 source code
然後下載 再安裝
總結一下,說那麼多廢話,終歸,最可能你就是所下載的版本可能對,所帶來的錯誤。
在此還強調一下,如果你的版本確認是正確的,但是還是出現問題,建議-yum卸載
yum remove cmake* 把camke卸載 從官網上下載cmake編譯安裝
#/bin/sh
cd /usr/local/src/
wget http://wwwNaNake.org/files/v2.8/cmake-2.8.12.2.tar.gz
tar zxvf cmake-2.8.12.2.tar.gz
cd cmake-2.8.12.2
./configure
Make
Make install
然後我有遇到另個問題。
make: *** 沒有指明目標並且找不到 makefile。 停止。
我不可能沒有裝make,而且gcc、devel、libs等等我都有裝。這個問題又是怎麼回事呢?
其實是這樣的 cmake成功了就會生成makefile,使用make的時候系統會在當前目錄找makefile
如果cmake失敗了呢,就不會有,但是你在編譯貌似還不行,不得不說一下我的原因是因爲
- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:83 (MESSAGE):
Curses library not found. Please install appropriate package,
remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.
Call Stack (most recent call first):
cmake/readline.cmake:127 (FIND_CURSES)
cmake/readline.cmake:217 (MYSQL_USE_BUNDLED_LIBEDIT)
CMakeLists.txt:354 (MYSQL_CHECK_READLINE)
-- Configuring incomplete, errors occurred!
See also
原因就是
package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.
我少了ncurses (你可以用 yum install ncurses ncurses-devel ncurses-libs 來進行安裝)
我當時有點拙急,我用的額方法是 yum install *ncurses* 其實一樣的,這個不是問題,問題是make 還是報錯!
解決方法如下
看見 CMakeCache.txt 了嗎? 刪掉它,然後重新使用 cmake 開始編譯mysql
rm -rf CMakeCache.txt
===================================================================================
寫完這篇博文呢,我感覺自己有點二,也確實挺二的,能碰到這些問題,不應該爲這些小問題糾結的
好了,就當在吐槽一句吧
下面我把 安裝mysql的方式 給大家copy出來
/cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ -DINSTALL_DATADIR=/usr/local/mysql/data/master -DSYSCONFDIR=/usr/local/mysql/etc \
-DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_SSL=system -DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DMYSQL_USER=mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock
make && make install
groupadd mysql
shell> useradd -r -g mysql mysql
useradd -g mysql mysql -s /bin/false
chown -R mysql:mysql /usr/local/mysql
mkdir /usr/local/mysql/etc
shell> cd /usr/local/mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> scripts/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql data
shell> bin/mysqld_safe --user=mysql &
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql.server
cp support-files/my-default.cnf /usr/local/mysql/etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld-sh
vi /usr/local/mysql/etc/my.cnf
bind-address=
socket =
port = 3306
user = mysql
vi /etc/init.d/mysqld-sh
basedir=
datadir
mysqld_pid_file_path=
chmod +x /etc/init.d/mysqld-sh
/usr/local/mysql/scripts/mysql_install_db \
--defaults-extra-file=/usr/local/mysql/etc/my.cnf \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql \
--user=mysql
/etc/init.d/mysqld-sh start
/usr/local/mysql/bin/mysqladmin -u root password '你的密碼'
cp /usr/local/mysql/bin/mysql /bin/mysql