一、源碼包準備
(1)mysql-5.5.15.tar.gz mysql源碼包。去www.mysql.com下載最新的mysql5.5.15。
(2)安裝所需相關庫文件
#yum -y install gcc gcc-c++ ncurses-devel cmake make
二、編譯過程
(1)創建目錄,用戶和權限。
#mkdir -p /app/wodsy/mysql #建立mysql安裝目錄
#mkdir -p /app/wodsy/mysql/tmp
#groupadd mysql #添加mysql組
#useradd -g msyql msyql #添加一個mysql用戶並加入到mysql組中
#chown -R mysql.mysql /data/mysql #將/data/mysql目錄的所有權賦予mysql組中的mysql 用戶
(2)安裝mysql
#cd mysql-5.5.15
cmake -DCMAKE_INSTALL_PREFIX=/app/wodsy/mysql \ 【安裝目錄】
-DMYSQL_DATADIR=/data/dbdata \ 【會自動在安裝目錄下生成該目錄,無需創建 】
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DMYSQL_UNIX_ADDR=/app/wodsy/mysql/tmp/mysql.sock \ 【需創建目錄】
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_SSL=yes
'
#make &&make install
註釋:
DCMAKE_INSTALL_PREFIX=/app/wodsy/mysql //mysql安裝目錄
DMYSQL_UNIX_ADDR=/app/wodsy/mysql/tmp/mysql.sock //連接數據庫socket路徑
DMYSQL_DATADIR=/app/wodsy/mysql/data //mysql數據存放目錄,會在安裝目錄下自動創建
DMYSQL_USER=mysql //mysql用戶
DDEFAULT_CHARSET //默認字符
DDEFAULT_COLLATION //默認字符集
DWITH_EXTRA_CHARSETS=all //校驗字符
DWITH_MYISAM_STORAGE_ENGINE=1 //安裝MYISAM存儲引擎
DWITH_INNOBASE_STORAGE_ENGINE=1 // 安裝 innodb 存儲引擎
DWITH_MEMORY_STORAGE_ENGINE=1 //安裝 memory 存儲引擎
DWITH_READLINE=1 //使用綁定的readline
DENABLED_LOCAL_INFILE=1 //允許從本地導入數據
三、拷貝相關啓動腳本並初始化數據庫並再次授權
1、把啓動腳本傳到/etc/init.d/下
cp support-files/mysql.server /etc/init.d/mysqld
2、把mysql連接命令,cp到 用戶變量下
cp /app/wodsy/mysql/bin/mysql* /usr/sbin/
3、授權並設置開機啓動
#chmod 755 scripts/mysql_install_db #增加權限
#chown -R mysql:mysql /app/wodsy/mysql
#chmod 755 /etc/init.d/mysqld
#chkconfig mysql on
4、初始化mysql
cd /app/wodsy/mysql/scripts
./mysql_install_db --user=mysql --basedir=/app/wodsy/mysql(安裝目錄) --datadir=/app/wodsy/mysql/data(數據庫存放目錄)
########################################
報錯:
ERROR: 1 Can't create/write to file '/app/wodsy/mysql/data/mysql/db.MYI' (Errcode: 13)
150323 22:21:11 [ERROR] Aborting
解決方法:
給mysql的父目錄 wodsy 755權限
########################################
輸出下列就沒問題
【141104 21:59:47 [Warning] The syntax '--log-slow-queries' is deprecated and will be removed in a
future release. Please use '--slow-query-log'/'--slow-query-log-file' instead.
OK
Filling help tables...
141104 21:59:50 [Warning] The syntax '--log-slow-queries' is deprecated and will be removed in a future
release. Please use '--slow-query-log'/'--slow-query-log-file' instead.
OK】
#########################################
四、編輯並優化配置文件
[client]
port = 3306
socket = /app/wodsy/mysql/tmp/mysql.sock
[mysqld]
port = 3306
socket = /app/wodsy/mysql/tmp/mysql.sock 【sock路徑】
basedir = /app/wodsy/mysql 【安裝路徑】
datadir = /app/wodsy/mysql/data 【數據庫存放路徑】 group_concat_max_len = 20000
event_scheduler = 1
join_buffer_size = 16M
query_cache_limit = 8M
query_cache_size = 1024M
query_cache_type = 1
bulk_insert_buffer_size = 64M
max_heap_table_size = 64M
key_buffer_size = 256M
tmp_table_size = 256M
table_open_cache = 10240
thread_cache_size = 16
thread_concurrency = 16
thread_stack = 256k
######## bin_log ###########
server-id = 1
log-bin=mysql-bin
binlog_cache_size = 4M
binlog_format=mixed
log_warnings
expire_logs_days = 15
######### slow query log #######
log-slow-queries=/app/wodsy/mysql/data/slow.log
long_query_time = 4
#log-queries-not-using-indexes
[mysqldump]
quick
max_allowed_packet = 64M
[mysql]
no-auto-rehash
[mysqlhotcopy]
interactive-timeout
[mysqld_safe]
open-files-limit = 8192
################################################################
#/etc/init.d/mysql start #啓動mysql
可以在進程中查看mysql是否啓動,完成。
設置一個mysql的root密碼
#mysqlamdin -u root password '123456'
到此,mysql-5.5基本搭建完了
五、允許mysql從外網登錄
#mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'wodsy.com@#$';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'wodsy.com@#$';
mysql > flush privileges;
六、啓動可能報的錯誤
如果啓動mysql如下錯誤:
Starting MySQL.... ERROR! The server quit without updating PID file (/data/mysql/localhost.pid)
或者
ERROR: 1 Can't create/write to file '/app/wodsy/mysql/data/mysql/db.MYI' (Errcode: 13)
1、看一下/data/mysql這個目錄的屬主:屬組是不是 【mysql】
2、看一下/etc/my.cnf 【mysql】模塊下是否指明瞭 mysql安裝路徑和數據庫存放路徑
3、也有可能是mysql的父目錄沒有權限造成的
比如給wodsy目錄權限
chmod 755 /app/wodsy