怎样在Linux环境下安装部署MySQL数据库系统

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样在Linux环境下安装部署MySQL数据库系统相关的知识,希望对你有一定的参考价值。

  如何在linux下安装mysql数据库并配置

关于本文
  本文将以MySQL 5.0.51为例,以CentOS 5为平台,讲述MySQL数据库的安装和设置。

  2. 关于MySQL
  MySQL是最流行的开源SQL数据库管理系统,它由MySQL AB开发、发布和支持。MySQL AB是一家由MySQL开发人员创建的商业公司,它是一家使用了一种成功的商业模式来结合开源价值和方法论的第二代开源公司。MySQL是MySQL AB的注册商标。
  MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass-deployed)的软件中去。
  MySQL的官方发音是“My Ess Que Ell”,而不是“My sequel”。但是你也可以使用“My sequel”和其他的方言。
  MySQL网站(http://www.mysql.com)提供了关于MySQL和MySQL AB的最新的消息。
  MySQL具有如下特点或特性:
  MySQL是一个数据库管理系统;
  MySQL是一个关系数据库管理系统;
  MySQL是开源的;
  MySQL服务器是一个快的、可靠的和易于使用的数据库服务器;
  MySQL服务器工作在客户/服务器或嵌入系统中;
  有大量的MySQL软件可以使用。

  3. MySQL的安装
  MySQL有两种安装方式:源码包安装和二进制包安装。这两种方式各有特色:二位制包安装不需编译,针对不同的平台有经过优化编译的不同的二进制文件以及包格式,安装简单方便;源码包则必须先配置编译再安装,可以根据你所用的主机环境进行优化,选择最佳的配置值,安装定制更灵活。下面分别介绍这两种安装方式。
  3.1 源码包方式安装
  3.1.1 在linux系统中添加运行Mysql的用户和组
  /usr/sbin/groupadd mysql
  /usr/sbin/useradd -d /var/lib/mysql -s /sbin/nologin -g mysql mysql
  3.1.2 下载最新稳定发行版(GA)的MySQL软件
  访问MySQL网站http://dev.mysql.com/downloads/下载最新稳定发行版的MySQL源码包。本文使用的是5.0.51版本,在linux系统下用下面的命令下载:
  wget http://mysql.mirror.kangaroot.net/Downloads/MySQL-5.0/mysql-5.0.51.tar.gz
  3.1.3 解压缩下载的源码包
  首先建立一个工作目录( 笔者建议的目录为/usr/local/src/mysql ) :
  mkdir -p /usr/local/src/mysql
  将下载的源码包移至工作目录:
  mv mysql-5.0.51.tar.gz /usr/local/src/mysql
  进入工作目录并用tar命令解压源码包:
  cd /usr/local/src/mysql
  tar zxvf mysql-5.0.51.tar.gz
  命令执行结束后,当前工作目录下将生成一个新的子目录mysql-5.0.51,此目录下即为mysql的源码文件。
  3.1.4 配置Makefile文件
  进入MySQL源码目录:
  cd mysql-5.0.51
  执行下面的命令可查看可配置选项:
  ./configure --help
  本文使用的配置命令格式如下:
  CC=gcc CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --enable-thread-safe-client --enable-assembler --with-big-tables --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=complex
  配置选项说明:
  CC:C编译器的名称(用于运行configure),本文示例为gcc
  CFLAGS:C编译器的标志(用于运行configure),本文示例为-O3,指定优化级别为3
  CXX:C++编译器的名称(用于运行configure),本文示例为gcc
  CXXFLAGS:C++编译器的标志(用于运行configure)
  --prefix:指定安装目录,本文示例为/usr/local/mysql
  --localstatedir:指定默认数据库文件保存目录,默认为安装目录下的var目录
  --enable-thread-safe-client:编译线程安全版的MySQL客户端库
  --enable-assembler:使用一些字符函数的汇编版本
  --with-client-ldflags:客户端链接参数,本文示例为指定静态编译mysql客户端
  --with-mysqld-ldflags:服务器端链接参数,本文示例为指定静态编译mysql服务器
  --with-big-tables:在32位平台上支持大于4G行的表
  --with-charset:指定默认字符集。mysql默认使用latin1(cp1252)字符集,可以使用此选项更改。字符集可以是big5、cp1251、cp1257、czech、danish、dec8、dos、euc_kr、gb2312、gbk、german1、hebrew、hp8、hungarian、koi8_ru、koi8_ukr、latin1、latin2、sjis、swe7、tis620、ujis、usa7或win1251ukr。
  --with-collation:指定默认校对规则。mysql默认使用latin1_swedish_ci校对规则,可以使用此选项更改。
  --with-extra-charsets:服务器需要支持的字符集,有三种可能的值:空格间隔的一系列字符集名;complex ,包括不能动态装载的所有字符集;all,将所有字符集包括进二进制。本文示例为complex。
  注意:要想更改字符集和校对规则,要同时使用--with-charset和--with-collation选项。 校对规则必须是字符集的合法校对规则。(在mysql中使用SHOW COLLATION语句来确定每个字符集使用哪个校对规则)。
  3.1.5 编译源代码
  执行下面的命令编译源代码:
  make
  3.1.6 安装
  执行下面的命令安装mysql到目标路径:
  make install
  3.1.7 复制默认全局启动参数配置文件到/etc目录
  源码方式安装需要手动复制配置文件,配置模板位于源码树的support-files目录,有my-small.cnf、my-medium.cnf、my-large.cnf、my-huge.cnf四个,选择跟你的环境相接近的一个复制到/etc目录,并做适当修改。关于mysql配置文件的详细信息请参阅笔者的其它文章或是mysql官方文档。
  本文示例选择my-medium.cnf,执行下面的命令将其复制到/etc目录:
  cp ./support-files/my-medium.cnf /etc/my.cnf
  3.1.8 初始化授权表
  执行下面的命令初始化授权表:
  ./scripts/mysql_install_db --user=mysql
  3.1.9 更改mysql数据目录属主和权限
  默认数据库文件保存目录为安装目录下的var目录,执行configure命令时可通过--localstatedir参数指定不同的目录,本文示例为默认位置。
  chown -R mysql.mysql /usr/local/mysql/var
  chmod -R 700 /usr/local/mysql/var
  3.1.10 设置开机自启动服务控制脚本
  执行下面的命令复制启动脚本到资源目录:
  cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
  执行下面的命令增加mysqld服务控制脚本执行权限:
  chmod +x /etc/rc.d/init.d/mysqld
  执行下面的命令将mysqld服务加入到系统服务:
  chkconfig --add mysqld
  执行下面的命令检查mysqld服务是否已经生效:
  chkconfig --list mysqld
  命令输出类似下面的结果:
  mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
  表明mysqld服务已经生效,在2、3、4、5运行级别随系统启动而自动启动,以后可以使用service命令控制mysql的启动和停止。
  启动mysqld服务:
  service mysqld start
  停止mysqld服务:
  service mysqld stop
  执行下面的命令关闭开机自启动:
  chkconfig mysqld off
  执行下面的命令可以改变开机自启动的运行级别为3、5:
  chkconfig --level 35 mysqld on
  3.1.11 将mysql的bin目录加入PATH环境变量
  编辑/etc/profile文件:
  vi /etc/profile
  在文件最后添加如下两行:
  PATH=$PATH:/usr/local/mysql/bin
  export PATH
  执行下面的命令使所做的更改生效:
  . /etc/profile

  3.2 二进制包方式安装
  3.2.1 从安装媒体安装
  Mysql二进制包已经包含在CentOS 5的安装媒体中,可以直接从安装媒体中安装下面三个rpm包:
  mysql-5.0.22-2.1.0.1.i386.rpm
  mysql-devel-5.0.22-2.1.0.1.i386.rpm
  mysql-server-5.0.22-2.1.0.1.i386.rpm
  不同的版本文件名有所不同,请注意区分。
  执行下面的命令安装:
  rpm -iUvh mysql-5.0.22-2.1.0.1.i386.rpm
  rpm -iUvh mysql-devel-5.0.22-2.1.0.1.i386.rpm
  rpm -iUvh mysql-server-5.0.22-2.1.0.1.i386.rpm
  3.2.2 通过yum安装
  如果你安装的机器此时可以连接到互联网,笔者建议使用yum命令来简化安装过程:
  yum install mysql-server mysql-devel mysql
  yum将自动从centos的镜像站点查找你指明的软件的最新二进制包,并检查软件包依赖关系,安装软件的同时自动安装其依赖的软件包。
参考技术A 创建用于执行mysql服务程序的帐号:

[root@linuxprobe cmake-2f

生成系统数据库(生成信息已省略):
[root@linuxprobe mysql-5f /etc/my.cnf

将mysqld服务程序添加到开机启动项:
[root@linuxprobe mysql]# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@linuxprobe mysql]# chmod 755 /etc/init.d/mysqld
[root@linuxprobe mysql]# chkconfig mysqld on

编辑启动项的配置文件:
[root@linuxprobe mysql]# vim /etc/rc.d/init.d/mysqld
//分别修改第46与47行,basedir为程序安装路径,datadir为数据库存放目录。
basedir=/usr/local/mysql
datadir=/usr/local/mysql/var

重启mysqld服务程序:
[root@localhost mysql]# service mysqld start
Starting MySQL. SUCCESS!

把mysql服务程序命令目录添加到环境变量中(永久生效):
[root@linuxprobe mysql]# vim /etc/profile
//在配置文件的最下面追加:
export PATH=$PATH:/usr/local/mysql/bin
[root@linuxprobe mysql]# source /etc/profile

将mysqld服务程序的库文件链接到默认的位置:
[root@linuxprobe mysql]# mkdir /var/lib/mysql
[root@linuxprobe mysql]# ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
[root@linuxprobe mysql]# ln -s /usr/local/mysql/include/mysql /usr/include/mysql
[root@linuxprobe mysql]# ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

初始化mysqld服务程序:
[root@linuxprobe mysql]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MySQL to secure it, we'll need the current
password for the root user. If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.
Set root password? [Y/n] y
New password: 输入要为root用户设置的数据库密码。
Re-enter new password: 重复再输入一次密码。
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y(删除匿名帐号)
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y(禁止root用户从远程登陆)
... Success!
By default, MySQL comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y(删除test数据库并取消对其的访问权限)
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y(刷新授权表,让初始化后的设定立即生效)
... Success!
All done! If you've completed all of the above steps, your MySQL
installation should now be secure.
Thanks for using MySQL!
Cleaning up...

可以百度搜索Linux就该这么学,第9章 使用Apache服务部署静态网站,里面有部署mysql的资料
参考技术B 哪个linux。

以上是关于怎样在Linux环境下安装部署MySQL数据库系统的主要内容,如果未能解决你的问题,请参考以下文章

测试环境搭建和部署(在Linux环境下搭建jdk+Tomcat+mysql环境和项目包的部署)

Linux下实现Mysql开发环境的部署和数据库程序的实现

怎样在linux下部署windows下开发的项目

Linux环境下部署mysql异常问题:发现没有my.cnf文件

linux环境下python怎样操作mysql数据库

手把手教你在 Linux 环境下部署 MySQL 数据库!