最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux下MySQL 5.5.8 源碼編譯安裝記錄分享

 更新時間:2011年10月31日 23:15:27   作者:  
Linux下MySQL 5.5.8 源碼編譯安裝記錄分享,需要的朋友可以參考下。

系統(tǒng):Ubuntu 10.10
mysql源碼文件:mysql-5.5.8.tar.gz
安裝所需工具:cmake, GNU make, gcc, Perl, libncurses5-dev, bison(可選), chkconfig
注:
1.官方2010-11-18的源碼有幾處bug,在編譯之前參照官方的說明,進(jìn)行了手動修改。

官方說明鏈接:http://lists.mysql.com/commits/126782
2.官方5.5版本參考手冊:http://dev.mysql.com/doc/
汗了一下,3392頁的參考手冊!
=>工具安裝:
1. cmake
----沒有自己編譯安裝cmake
----shell:~$ sudo apt-get install cmake
----版本:2.8.2
2. GNU make
----Ubuntu自帶
----版本:3.81
3.GCC
----Ubuntu自帶
----版本:4.4.5(官方文檔:必須3.2以上)
4.Perl
----Ubuntu自帶
----版本:5.10.1
5.libncurses5-dev (ncurses-devel)
----若差了這個包,在cmake的時候會報(bào)錯。
----Debian/Ubuntu上的包名是libncurses5-dev,RedHat和其他版本對應(yīng)的是ncurses-devel
----shell:~$ sudo apt-get install libncurses5-dev
----報(bào)錯信息
------------------www.linuxidc.com---------------
-- MySQL 5.5.8
-- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:82 (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:126 (FIND_CURSES)
cmake/readline.cmake:216 (MYSQL_USE_BUNDLED_LIBEDIT)
CMakeLists.txt:256 (MYSQL_CHECK_READLINE)

-- Configuring incomplete, errors occurred!
---------------------------------
6. bison
----shell:~$ sudo apt-get install bison
----可選。沒有這個工具,在make的時候報(bào)出警告。
----警告記錄:
---------------------------------

Warning: Bison executables not found in PATH
---------------------------------
7.chkconfig
----后面配置mysql服務(wù)自啟動的時候需要。
----shell:~$ sudo apt-get install chkconfig
=>mysql安裝:
1.解壓源代碼文件
----shell定位到源代碼文件所在目錄
----解壓
shell:~$ tar zxvf mysql-5.5.8.tar.gz
2.cmake操作
----shell定位到解壓出的源代碼文件夾目錄(文件夾:mysql-5.5.8)
----cmake執(zhí)行:
---------------------------------
shell:~$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_DATADIR=/home/system_username/Programming/mysql/mysqldata
-DSYSCONFDIR=/etc
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_FEDERATED_STORAGE_ENGINE=1
-DWITH_PARTITION_STORAGE_ENGINE=1
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock
-DMYSQL_TCP_PORT=3306
-DENABLED_LOCAL_INFILE=1
-DEXTRA_CHARSETS=all
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8-general_ci
-DMYSQL_USER=mysql
注:沒有換行。官方文檔上,cmake 命令后面加個點(diǎn)不懂什么意思。在這里加上命令執(zhí)行不了
---------------------------------
源代碼配置選項(xiàng)說明:
//mysql安裝的主目錄,5.5.8版本默認(rèn)為/usr/local/mysql,所以可以不添加
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql

//mysql數(shù)據(jù)保存的路徑,自定義
-DMYSQL_DATADIR=/home/system_username/mysql/mysqldata

//mysql配置文件地址------The default my.cnf option file directory
-DSYSCONFDIR=/etc

//Compile storage engine xxx statically into server
/*Storage engines are built as plugins. You can build a plugin as a static module (compiled into the server)
*or a dynamic module (built as a dynamic library that must be installed into the server using the INSTALL
*PLUGIN statement or the --plugin-load option before it can be used). Some plugins might not support static
*or dynamic building.
*/
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_FEDERATED_STORAGE_ENGINE=1
-DWITH_PARTITION_STORAGE_ENGINE=1

//Unix socket file
/*
*The Unix socket file path on which the server listens for socket connections. This must be an absolute path
*name. The default is /tmp/mysql.sock
*/
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock

//數(shù)據(jù)庫服務(wù)器TCP/IP連接的監(jiān)聽端口,默認(rèn)為3306
-DMYSQL_TCP_PORT=3306

//Whether to enable LOCAL capability in the client library for LOAD DATA INFILE
//默認(rèn)為關(guān)閉,這里開啟
-DENABLED_LOCAL_INFILE=1

//數(shù)據(jù)庫編碼設(shè)置
-DEXTRA_CHARSETS=all
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8-general_ci
3.編譯和安裝
----shell定位到源代碼文件夾目錄
----執(zhí)行:(編譯用了大概20分鐘)
shell:~$ make
shell:~$ make install

4.后續(xù)配置
----進(jìn)入mysql安裝目錄下的腳本目錄
shell:~$ cd /usr/local/mysql/scripts
----利用mysql_install_db腳本生成新的MySQL 授權(quán)表
./mysql_install_db --basedir=/usr/local/mysql --datadir=/home/system_username/Programming/mysql/mysqldata
--user=mysql
----進(jìn)入mysql安裝目錄下的支持文件目錄
shell:~$ cd /usr/local/mysql/support-files
----復(fù)制mysql配置文件
shell:~$ sudo cp my-medium.cnf /etc/my.cnf

----復(fù)制服務(wù)文件并修改
shell:~$ sudo cp mysql.server mysqld
----修改mysqld
basedir=/usr/local/mysql
datadir=/home/mysql
mv mysqld /etc/init.d/mysqld
----啟動服務(wù)
shell:~$ service mysqld start
----關(guān)閉服務(wù)
shell:~$ service mysqld stop
---------------------------------
service命令:
1. 用于管理Linux系統(tǒng)中服務(wù)的命令
2. 作用是去/etc/init.d目錄下尋找相應(yīng)的服務(wù),進(jìn)行開啟和關(guān)閉等操作
3. 上述操作后,mysqld服務(wù)文件對應(yīng)mysql.server文件
---------------------------------
----添加服務(wù)到自啟動項(xiàng)
shell:~$ sudo chkconfig --level 3 mysqld on

----設(shè)置軟連接使mysql, mysqldump, mysqladmin這三個命令能在shell中直接運(yùn)行
shell:~$ sudo ln -s /usr/local/mysql/bin/mysql /usr/bin
shell:~$ sudo ln -s /usr/local/mysql/bin/mysqldump /usr/bin
shell:~$ sudo ln -s /usr/local/mysql/bin/mysqladmin /usr/bin
---------------------------------
=>mysql數(shù)據(jù)庫中文亂碼解決 :
1. 亂碼分析
----從終端shell進(jìn)入mysql
shell:~$ mysql
............
............
mysql> show variables like '%character%'
----得到以下數(shù)據(jù)庫編碼信息表:
+----------------------------------- +-------------------------------------------+
| Variable_name | Value |
+------------------------------------+-------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql/share/charsets/ |
+------------------------------------ +-------------------------------------------+
可以看出character_set_database ,character_set_server 的編碼還是默認(rèn)的latin1。
不知道為什么,之前DEFAULT_CHARSET設(shè)置成為utf8的,好像沒起作用。查看官方文檔
發(fā)現(xiàn),character_set_database不支持配置文件(/etc/my.cnf)變量設(shè)置,
但是character_set_server 支持配置文件變量設(shè)置。

2. 解決辦法
----打開配置文件
shell:~$ sudo gedit /etc/my.cnf
然后在[mysqld]配置選項(xiàng)下添加
character-set-server = utf8
----然后進(jìn)入mysql
執(zhí)行:
mysql> show variables like '%character%'
結(jié)果:character_set_database ,character_set_server兩項(xiàng)都變?yōu)閡tf8了
----測試:
往數(shù)據(jù)庫表中插入中文字段,中文就正常顯示了。

注:1.用5.1版本的時候如下方法是可以解決中文編碼問題的
----在配置文件[mysqld]和[client]節(jié)下分別添加: default-character-set = utf8
2.不知到是不是手動編譯的原因,在5.5.8中配置文件中用上述方法會造成數(shù)據(jù)庫服務(wù)無法啟動。
----錯誤日志如下:( datadir/username.err為錯誤日志文件)
----------------------------------------------------
mysqld_safe mysqld from pid file /home/cyberwym/Programming/mysql/mysqldata/cyberwym.pid ended
...........
...........
[ERROR] /usr/local/mysql/bin/mysqld: unknown variable 'default-character-set=utf8'
[ERROR] Aborting
----------------------------------------------------
----這樣會造成pid文件(datadir/username.pid)無法更新
----在配置文件[mysqld]和[client]節(jié)下分別去掉: default-character-set = utf8 后,數(shù)據(jù)庫服務(wù)就啟動正常了

相關(guān)文章

  • mysql 直接拷貝data 目錄下文件還原數(shù)據(jù)的實(shí)現(xiàn)

    mysql 直接拷貝data 目錄下文件還原數(shù)據(jù)的實(shí)現(xiàn)

    這篇文章主要介紹了mysql 直接拷貝data 目錄下文件還原數(shù)據(jù)的實(shí)現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • mysql 5.7.17 安裝配置方法圖文教程(windows)

    mysql 5.7.17 安裝配置方法圖文教程(windows)

    這篇文章主要為大家分享了mysql 5.7.17 安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • MySQL導(dǎo)致索引失效的原因及分析

    MySQL導(dǎo)致索引失效的原因及分析

    索引失效的原因主要包括違反最左前綴法則、范圍查詢、索引列上進(jìn)行運(yùn)算操作、字符串不加單引號以及以%開頭的like模糊查詢,了解這些原因有助于我們更好地使用索引,提高查詢效率
    2024-12-12
  • MySQL對小數(shù)進(jìn)行四舍五入的操作實(shí)現(xiàn)

    MySQL對小數(shù)進(jìn)行四舍五入的操作實(shí)現(xiàn)

    數(shù)學(xué)函數(shù)是MySQL中常用的一類函數(shù),其主要用于處理數(shù)字,包括整型和浮點(diǎn)數(shù)等等,本文主要介紹了MySQL對小數(shù)進(jìn)行四舍五入的操作實(shí)現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • SQL?INSERT及批量的幾種方式總結(jié)

    SQL?INSERT及批量的幾種方式總結(jié)

    SQL提供了INSERT語句,用于將一行或多行插入表中,下面這篇文章主要給大家介紹了關(guān)于SQL?INSERT及批量的幾種方式,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • MySQL主從復(fù)制基于binlog與GTID詳解

    MySQL主從復(fù)制基于binlog與GTID詳解

    本文介紹了基于binlog和GTID的MySQL主從復(fù)制搭建步驟,包括準(zhǔn)備環(huán)境、創(chuàng)建授權(quán)賬戶、配置主從庫等,通過主從復(fù)制,可以實(shí)現(xiàn)數(shù)據(jù)的高可用、負(fù)載均衡和災(zāi)難恢復(fù),首先,確保環(huán)境一致性,然后在數(shù)據(jù)庫中創(chuàng)建具有復(fù)制權(quán)限的賬戶
    2024-10-10
  • Mysql分析設(shè)計(jì)表主鍵為何不用uuid

    Mysql分析設(shè)計(jì)表主鍵為何不用uuid

    在mysql中設(shè)計(jì)表的時候,mysql官方推薦不要使用uuid或者不連續(xù)不重復(fù)的雪花id(long形且唯一),而是推薦連續(xù)自增的主鍵id,官方的推薦是auto_increment,那么為什么不建議采用uuid,使用uuid究竟有什么壞處?本篇博客我們就來分析這個問題,探討一下內(nèi)部的原因
    2022-03-03
  • MySQL?8.0.35數(shù)據(jù)庫下載安裝以及環(huán)境變量的配置方法

    MySQL?8.0.35數(shù)據(jù)庫下載安裝以及環(huán)境變量的配置方法

    很多朋友剛開始接觸mysql數(shù)據(jù)庫服務(wù)器,這篇文章主要給大家介紹了關(guān)于MySQL?8.0.35數(shù)據(jù)庫下載安裝以及環(huán)境變量的配置方法,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • MySQL Union合并查詢數(shù)據(jù)及表別名、字段別名用法分析

    MySQL Union合并查詢數(shù)據(jù)及表別名、字段別名用法分析

    這篇文章主要介紹了MySQL Union合并查詢數(shù)據(jù)及表別名、字段別名用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了mysql使用Union合并連接查詢數(shù)據(jù)以及使用as實(shí)現(xiàn)表別名與字段別名操作,需要的朋友可以參考下
    2018-06-06
  • mySQL 延遲 查詢主表

    mySQL 延遲 查詢主表

    在主外鍵表存在關(guān)系的時候如果加上"lazy=true"的話,則表明延遲,即只查詢主表中的內(nèi)容,而不查詢外鍵表中的內(nèi)容。
    2009-09-09

最新評論

洛扎县| 盖州市| 和田县| 常州市| 天祝| 红桥区| 来宾市| 武平县| 湖南省| 垫江县| 伊吾县| 南安市| 永川市| 从化市| 宿州市| 新和县| 锡林浩特市| 临桂县| 军事| 台东县| 芜湖县| 鄱阳县| 灵寿县| 玉门市| 那坡县| 肥东县| 普陀区| 高阳县| 香河县| 威远县| 田东县| 红原县| 射洪县| 西城区| 灵川县| 富蕴县| 托克托县| 台湾省| 勃利县| 伊吾县| 宣化县|