linux mysql 提领类型双关的指针将破坏强重叠规则_mysql-5.5.20+CentOS 6.2 编译安装全过程详解...

MySQL 从5.5开始改用cmake来编译源码代替./configure,

#本例为编译源码安装 mysql-5.5.20 :

在编译安装 MySQL 5.5.x 之前,需要最少安装的包有:

gcc4.4.6、gcc-c++、cmake、ncurses-devel、bison

【 建议升级centOS到6.2,否则安装gcc4.4.6 】

centOS 6.2 只需安装cmake、ncurses-devel、bison,后两个用yum -y install bison命令安装即可,cmake参下文

一、安装 cmake --前提软件。

tar zxvf cmake-2.8.6.tar.gz

cd cmake-2.8.6

./configure

gmake

gmake install

二、添加 Mysql 帐号 :mysql是否可登录,看自己需要

#不加密码默认禁止登录,参vi /etc/shadow

groupadd mysql

useradd -g mysql mysql

或添加不可登录的系统用户,视自己帐号管理需要来定:

# useradd -M -r --shell /sbin/nologin --home-dir /usr/local/mysql mysql

三、 安装 Mysql :安装前务必检查gcc等依赖软件是否安装了。

-----------------------------------------------------------

准备工作:

1、创建所需目录:

# mkdir -p /usr/local/mysql

# mkdir -p /var/lib/mysql --如果需要放mysql.sock到此目录则创建

2、可检查是否安装过mysql:

# rpm -qa |grep mysql 如果有安装mysql,将出现以下信息

mysql-5.0.77-4.el5_5.4

mysql-devel-5.0.77-4.el5_5.4 //这里显示安装了mysql和mysql-devel,没有则不显示

# rpm -e mysql mysql-devel //卸载MySQL安装包

3、下载MYSQL源码包:

# wget http://mysql.cs.pu.edu.tw/Downloads/MySQL-5.5/mysql-5.5.20.tar.gz

-----------------------------------------------------------

tar zxvf mysql-5.5.16.tar.gz 解压到/usr/local/src下。目录名为mysql-5.5.20

cd mysql-5.5.16

(1) 5.5+已改用cmake,其选项参考INSTALL-SOURCE最后部分:

(2) cmake -D= ,可以通过# cmake . -LH 查看支持的选项,

(3) 注意cmake后面有点号

(5) 5.5.20的MyISAM, MERGE, MEMORY, and CSV几个引擎总是强制静态编译进服务器。其它引擎想编译进入,用-DWITH_引擎名值_STORAGE_ENGINE=1 加入,引擎名值如下:

ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB),NDBCLUSTER (NDB), PARTITION (partitioning support), PERFSCHEMA (Performance Schema)。

开始安装:

# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \

-DMYSQL_DATADIR=/mysqldata \ -- 数据库路径

-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ --默认位置是/tmp/mysql.sock

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DEXTRA_CHARSETS=all \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_READLINE=1 \

-DENABLED_LOCAL_INFILE=1 \ -- 指定是否允许本地执行LOAD DATA INFILE,默认OFF

-DWITH_SSL=yes \ -- 支持 SSL

-DWITH_DEBUG=0

【警告】不要使用-DWITH_EXTRA_CHARSETS(扩展字符集),否则会造成gbk,gb2312无法使用的现象,即使你指定了其值为gbk,gb2312也不行,该选项与-DEXTRA_CHARSETS=all有排斥,加入后-DEXTRA_CHARSETS=all无效。

# 以上未用到的其它参数:

-DWITH_COMMENT:指定编译备注信息。

-DMYSQL_TCP_PORT=3306指定端口。

-DSYSCONFDIR=/ mysqldata/3306 指定文件my.cnf位置。如设此选项则后面应复制my.cnf到此目录

其它选项参考INSTALL-SOURCE文件。

-------------------

//make编译过程中,如出现“警告:提领类型双关的指针将破坏强重叠规则”错误,可以忽略。

# make

# make install

#执行完make install后,在/etc/或cmake指定目录下就有my.cnf,但是很简洁,需要从support-files下复制一个。

四、配置my.cnf

#注意,my.cnf复制路径是根据-DSYSCONFDIR=路径值决定,如未设定,默认是/tmp/mysql.sock

cp support-files/my-huge.cnf /etc/my.cnf

# vi /etc/my.cnf

--------------------------------

(在mysqld下方加入3条参数)

basedir=/usr/local/mysql

datadir=/mysqldata

skip-name-resolve #此参数务必加,否则远程连接会很慢。

--------------------------------

mysql目录下的supports-files有几个配置适合:

1、my-small.cnf 内存小于64M适用。

2、my-medium.cnf 内存小于128M且mysql必须与其它服务共享系统资源时。

3、my-large.cnf 内存小于512M且MYSQL做为主服务时。

4、my-huge.cnf 内存有1~2G且mysql做为主服务时。

5、my-innodb-heavy-4G.cnf 内存4G以上,且主要使用innodb,并且连接数不多但查询较为复杂时。

五、目录权限设置:

# 权限设置要在下步服务启动前先执行,否则可能出现The server quit without updating PID file (/mysqldata/centos62.pid) 的错误提示

chown -R mysql.mysql /usr/local/mysql /var/lib/mysql

【关于权限设置的说明:最佳权限是chown -R root.mysql /usr/local/mysql ,但是如果data和mysql.sock是放在这个目录下,则要把/usr/local/mysql 自身(不含下面的文件及目录)以及/usr/local/mysql/data目录设成启动用户所有,如chown -R mysql.mysql /usr/local/mysql/data,chown mysql.mysql /usr/local/mysql,这样mysql.sock可以写到这个目录(否则服务启动时将失败),data文件也可以用mysql用户写入,但其它文件的所有者均为root 】

六、定制启动服务及服务启动权限

# 以下服务名可自定,如cp复制并改名为mysqld也可,这样chkconfig也要chkconfig mysqld on

# 复制mysql.server.sh或mysql.server均可,二者内容一样。

# 如:cp support-files/mysql.server.sh /etc/init.d/mysql,则下面服务名全部用mysql

cp support-files/mysql.server.sh /etc/init.d/mysqld --复制后默认是-rw-r--r--

chkconfig --add mysqld -- 增加 mysqld 为系统服务

#或chkconfig --level 235 mysqld on -- 自定 mysqld 自动启动级别。

// chkconfig mysqld on 这里可不先启动,以免和下面的mysqld_safe --user=mysql &冲突

chmod 700 /etc/init.d/mysqld -- 权限设定, 或chmod u+x /etc/init.d/mysqld

/etc/init.d/mysqld start 或 service mysqld start

#netstat -nat命令将可以看到3306端口已打开。

七、初始化数据库:在数据目录下创建系统数据库和系统表。

#注意要先切换到/usr/local/mysql目录下,不是在安装目录/usr/local/src/mysql-5.5.20下。

cd /usr/local/mysql

./scripts/mysql_install_db \

--datadir=/mysqldata \

--user=mysql \

--basedir=/usr/local/mysql

** --user表示这些库和表的所有者为mysql。cmake未指定basedir则此处可不设

[注意]mysql_install_db执行要在安装目录顶层执行./scripts/mysql_install_db,而不是进入scripts目录后执行./mysql_install_db,

如果以服务器的root角色执行,则安装的库将是root所有,需要再修改所有者和组。

八、启动 Mysql : /usr/local/mysql/bin下。

/usr/local/mysql/bin/mysqld_safe --user=mysql &

# 可能会停着不动,按回车就会回到shell

mysqld_safe比mysqld增加了一些安全特性,可以在出现错误时重新启动MYSQL服务器,并提供了完善的日志信息。如果没有特殊要求,一般使用mysqld_safe而不是mysqld来启动MYSQL服务器。

九、修改管理员密码

bin/mysqladmin -u root password 'password1'

或:

bin/mysqladmin -uroot password '123456' -S /usr/local/mysql/mysql.sock

如果mysql用户可以用于日常维护,还要同样方法设置mysql的密码。

十、设置/usr/bin下的软链接:以便以后不需要路径直接登录。

cd /usr/bin

ln -s /usr/local/mysql/bin/mysql mysql

ln -s /usr/local/mysql/bin/mysqladmin mysqladmin

....其它同样

chmod 700 -R /usr/local/mysql/bin/

或者不用设置软链接,直接:export PATH=$PATH:/usr/local/mysql/bin

十一、把man文件添加到man page中:

#vi /etc/man.config

在:

MANPATH /usr/man

MANPATH /usr/share/man

MANPATH /usr/local/man

下面添加一行:

MANPATH /usr/local/mysql/man

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值