mysql5.1.60编译安装
1、tar -zxvfmysql*
2、./configure 之前要make clean
./configure--prefix=/home/shk/mysql-5.1.60 \
--enable-local-infile\
--with-unix-socket-path=/home/shk/mysql-5.1.60/var/mysql.sock\
--with-tcp-port=5506\
--enable-thread-safe-client\
--with-mysqld-user=root\
--with-extra-charsets=gb2312,big5,gbk,binary,ascii,latin1\
--with-charset=utf8\
--with-federated-storage-engine\
--with-partition
注释:在执行“makeclean”失败时,提示错误checking for termcap functions library... configure: error:Nocurses/termcap library found 。
则在执行./configure命令,执行命令代码为:
./configure--prefix=/usr/share/mysql/-with-charset=utf8 -with-extra-charsets=all –with-named-curses-libs=/usr/lib/libncursesw.so.5(最后一段命令可以省略)
出现错误:No curses/termcaplibrary found 或者seetheinstall manual chapter in the reference
yum–y install gcc yum installncurses-devel
在安装gcc时,出错libstdc++-devel*安装不上,则手动下一个libstdc++-devel*.rpm包装上,
在用rpm安装libstdc++-devel*.rpm时报错:error:Failed dependencies,
则用命令:rpm -ivhlibstdc++*.rpm --nodeps --force
3、make
如果报错,则减少configure的项
4、make install
5、建立MYSQL的启动文件
#chown-R root:mysql /usr/local/mysql
#chown-R mysql:mysql /usr/local/mysql/data
#chown-R mysql:mysql /usr/local/mysql/lib
#cd/usr/local/mysql/bin/
#./mysql_install_db--user=mysql
#cp/usr/local/mysql/share/mysql/mysql.server /etc/rc.d/init.d/mysqld
#cp/usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
6、启动MySQL
#/usr/local/mysql/share/mysql/mysql.serverstart
mysql5.5.31编译安装
1、下载安装编译MySQL源码需要的库
yum install gcc gcc-c++ ncurses-devel
yum install cmake bison
2、添加mysql用户组和用户
groupadd mysql
useradd -g mysql mysql
3、创建MySQL软件安装目录和数据存放目录
mkdir -p /opt/mysql #MySQL安装目录
chown -R mysql:mysql /opt/mysql
mkdir -p /data/mysql #MySQL数据存放目录
mkdir -p /data/mysql/data #存放数据
mkdir -p /data/mysql/log #存放日志
mkdir -p /data/mysql/tmp #存放临时文件
chown -R mysql:mysql /data/mysql
4、cmake编译安装MySQL
tar -zxvf mysql-5.6.13.tar.gz
cd mysql-5.6.13
cmake . -DCMAKE_INSTALL_PREFIX=/opt/mysql\
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/opt/mysql \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_USER=mysql
make
make install
参数说明:
-DCMAKE_INSTALL_PREFIX=/opt/mysql //指定安装目录
-DINSTALL_DATADIR=/data/mysql //指定数据存放目录
-DSYSCONFDIR=/opt/mysql //指定配置文件目录(本例的配置文件为/opt/mysql/my.cnf)
-DDEFAULT_CHARSET=utf8 //指定字符集
-DDEFAULT_COLLATION=utf8_general_ci //指定校验字符
-DEXTRA_CHARSETS=all //安装所有扩展字符集
-DENABLED_LOCAL_INFILE=1 //允许从本地导入数据
上述步骤执行成功后,MySQL软件已成功安装至/opt/mysql目录下。
5、编辑配置文件my.cnf涉及到的路径一定要和上面的配置相同
[client]
port =3306
socket = /opt/mysql/run/mysql.sock
[mysql]
[mysqld_safe]
pid-file = /opt/mysql/run/mysqld.pid
socket = /opt/mysql/run/mysql.sock
nice =0
[mysqld]
#### Baes dir ####
basedir = /opt/mysql
datadir = /data/mysql/data
tmpdir = /data/mysql/tmp
socket = /opt/mysql/run/mysql.sock
user=mysql
#### Base configure info ####
port = 3306
skip-external-locking
#
# Instead of skip-networking the default isnow to listen only on
# localhost which is more compatible and isnot less secure.
#bind-address = 127.0.0.1
#
# * Fine Tuning
#
key_buffer =16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
# This replaces the startup script andchecks MyISAM tables if needed
# the first time they are touched
myisam-recover = BACKUP
#max_connections = 100
#table_cache = 64
#thread_concurrency = 10
#
# * Query Cache Configuration
#
query_cache_limit = 1M
query_cache_size = 16M
#
# * Logging and Replication
#
# Both location gets rotated by thecronjob.
# Be aware that this log type is aperformance killer.
# As of 5.1 you can enable the log at runtime!
#general_log_file = /var/log/mysql/mysql.log
#general_log = 1
log-error = /data/mysql/log/alert.log
slow_query_log_file=/data/mysql/log/slow.log
# Here you can see queries with especiallylong duration
#log_slow_queries = /var/log/mysql/mysql-slow.log
#long_query_time = 2
#log-queries-not-using-indexes
#### Binary log && Relay log####
#binlog_format='MIXED'
log-bin = /data/mysql/log/mysql-bin
log-slave-updates = 1
relay-log =/data/mysql/log/mysqld-relay-bin
relay-log-index =/data/mysql/log/mysqld-relay-bin.index
master-info-file =/data/mysql/log/master.info
relay-log-info-file =/data/mysql/log/relay-log.info
max_binlog_size = 100M
[mysqldump]
quick
quote-names
max_allowed_packet = 16M
[mysql]
#no-auto-rehash # faster start of mysql but no tab completition
[isamchk]
key_buffer =16M
6、相关配置
cd /opt/mysql/support-files/
cp my-large.cnf /data/mysql/my.cnf
cp mysql.server /etc/rc.d/init.d/mysqld
7、创建数据库
/opt/mysql/scripts/mysql_install_db \
--user=mysql \
--default-files=/var/mysql/my.cnf \
--basedir=/opt/mysql \
--datadir=/data/mysql/data \
--user=mysql
上述建库语句将根据my.cnf里设置的数据文件目录和日志文件目录,生成相应的数据文件和日志文件,并创建系统数据库(如mysql,test,information_schema,performance_schema)
8、 在/etc/profile 文件中增加
export PATH=$PATH:/opt/mysql/bin
source /etc/profile
cp /opt/mysql/support-files/mysql.server/etc/init.d/mysqld #把Mysql加入系统启动
chmod +x /etc/init.d/msyqld
vim /etc/init.d/mysqld //查找相关配置项并进行修改
basedir=/opt/mysql
datadir=/var/mysql/data
9、启动MySQL
chkconfig --add mysqld
chkconfig --level 345 mysqld on
service mysqld start
启动成功后,就可以以root用户登录(默认的root用户没有密码)
/opt/mysql/bin/mysql -u root
查看是否可以登录
10、设置root密码
mysqladmin -u root password '123456a?'
mysql -uroot -p
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456a?' WITH GRANT OPTION;
11、最后,把MySQL加入系统启动项和开机启动
update-rc.d -f mysqld defaults #加入开机启动
错误与解决:
1、错误信息:Theserver quit without updating PID file
解决:配置信息可能太多,适当的删除参数,各个和mysql相关的文件都要把文件所有者设置成mysql:mysql
2、注意文件权限问题