一、源码包准备
(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