下面将以Linux下MySQL 5.1和MySQL 5.5的安装为例进行讲解。为了避免冲突,可以考虑先卸载Linux下自带的MySQL安装包,可使用“rpm -qa |grep MySQL”检测是否安装了MySQL相关包。推荐大家使用二进制版本的安装,主要原因是简单方便,而且官方的二进制包也是经过了充分的测试验证和参数优化的。使用源代码编译的方式安装可能会有一定性能的提升,但在实际应用中,可能会由于编译源码而出现各种问题,如果不清楚编译的参数,建议还是使用二进制版本。此外,无论是使用二进制版本还是源码编译,大规模的部署都必须尽量做到自动化安装,否则安装部署的成本会比较高。2.2.1 二进制包的安装首先登录官网,下载二进制版本,步骤如下。1)进入www.mysql.com。2)选择downloads(GA)。3)单击Download from MySQL Developer Zone。4)单击MySQL Community Server。5)选择相应的平台、版本,比如,选择64位Linux平台下的MySQL二进制包“Linux - Generic(glibc 2.5)(x86,64-bit),Compressed”。下面开始二进制版本的安装。1.在root下安装MySQL这种安装方式为默认方式,这里以“mysql-5.1.45-linux-x86_64-icc-glibc23.tar.gz”为例进行讲解。以root身份登录,运行如下命令安装MySQL。
useradd mysql cd /usr/local tar zxvf /tmp/mysql-5.1.45-linux-x86_64-icc-glibc23.tar.gz ln -s mysql-5.1.45-linux-x86_64-icc-glibc23 mysql cd mysql cp support-files/my-large.cnf /etc/my.cnf chown -R mysql . chgrp -R mysql . scripts/mysql_install_db --user=mysql chown -R root . chown -R mysql data mv data /home/mysql/ ln -s /home/mysql/data .上面的命令中移动data目录到其他分区(/home/mysql),是因为/usr/local下的磁盘空间可能不够。一般数据目录会存放到和操作系统不一样的分区或磁盘中。下面是安装后的目录及文件说明。安装后在安装目录mysql/bin中有如下内容。mysqld:MySQL服务主程序。mysqld_safe:MySQL服务启动脚本。mysql:MySQL命令行工具。mysqladmin:MySQL客户端(管理数据库)。perror:显示错误码(状态码)含义。mysqlbinlog:是处理二进制日志文件的实用工具。将MySQL配置为自启动服务,并启动。
cp support-files/mysql.server /etc/init.d/mysqld chkconfig mysqld on /etc/init.d/mysqld start运行如下命令设置MySQL root密码。/usr/local/mysql/bin/mysqladmin -u root password 'your_password'之后,使用MySQL自带的脚本或手动执行命令强化安全,删除匿名用户。自动化的方式是在root用户下执行如下命令。./bin/mysql_secure_installation然后按照提示操作,删除匿名账户和空密码的账户。手动删除匿名账户的操作方法如下。
shell> mysql -u root mysql> DELETE FROM mysql.user WHERE User = ''; mysql> FLUSH PRIVILEGES建议使用/usr/bin/mysql_secure_installation 脚本进行安全配置,它会帮你删除匿名账号。安装完成后,注意把要执行命令的路径添加到系统的PATH变量里,命令如下。
vi ~mysql/.bash_profile export PATH=/usr/local/mysql/bin:$PATH2.安装在特定的用户下面首先,编辑一份自己的配置文件,指定PORT、SOCKET等参数变量。安装和启动的时候需要指定这个配置文件,其他操作和默认安装类似。比如,要安装到“$HOME/app/”下,命令如下。
cd $HOME/app tar zxvf /path/mysql-5.1.45-linux-x86_64-icc-glibc23.tar.gz ln -s mysql-5.1.45-linux-x86_64-icc-glibc23 mysql cd mysql scripts/mysql_install_db --defaults-file=/home/garychen/app/mysql/my.cnf --user=garychen如果配置文件没有指定数据目录的话,则默认是在/home/garychen/app/mysql/data下。启动方式如下。./bin/mysqld_safe --defaults-file=/home/garychen/app/mysql/my.cnf --user=garychen &
此外,如果是生产环境下的大批量部署,一般建议定制自己的自动化安装脚本,或者通过自动化平台安装。 2.2.2 源码编译安装 本书不建议一般使用者使用源码编译的方式进行安装,如果决定编译安装,最好想想是否真的值得这样做,它可能对于性能提升并无多大作用,但却可能会带来潜在的不稳定因素,你必须确保自己对某些编译选项很熟悉,因为许多生产问题都来自于错误的编译方式。 可采用如下的命令查看已经安装的MySQL编译选项。 cat /usr/local/mysql/bin/mysqlbug | grep CONFIGURE_LINE 下面以MySQL 5.5为例讲解源码编译安装的基本步骤。 1)下载“MySQL-5.5.33.tar.gz”。 2)确认系统已经安装了cmake。 3)编译安装MySQL,命令如下。 #创建运行MySQL的用户 shell> groupadd mysql shell> useradd -r -g mysql mysql #开始编译安装 shell> tar zxvf mysql-VERSION.tar.gz shell> cd mysql-VERSION shell> cmake . -LH # overview with help text shell> cmake . shell> make-j 8 shell> make install #安装后配置、初始化数据库 shell> cd /usr/local/mysql shell> chown -R mysql . shell> chgrp -R mysql . shell> scripts/mysql_install_db --user=mysql shell> chown -R root . shell> chown -R mysql data #启动MySQL Server shell> cp support-files/my-medium.cnf /etc/my.cnf shell> bin/mysqld_safe --user=mysql & #添加到自启动服务 shell> cp support-files/mysql.server /etc/init.d/mysql.server shell>chkconfig mysql.server on #设置root密码 /usr/local/mysql/bin/mysqladmin -u root password 'your_password' #类似二进制安装,还需要进行安全强化,运行 ./bin/mysql_secure_installation 相关资源:超经典MySQL DBA培训笔记