`
晨星★~雨泪
  • 浏览: 446860 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Linux下两个不同版本Mysql的安装实战

阅读更多
http://www.iteye.com/topic/203986
问题的产生:在已有的Red Hat Enterprise Linux AS 3.0系统上已经运行了一套web程序,使用Mysql4, tomcat41, 现在又要求安装一套新程序,依旧使用该tomcat41, 但数据库变为mysql5。

注意事项:
新的程序需要注意字符集的问题,
1)具体数据库的权限和分组问题,
2)mysql5下的具体数据库从windows直接拷贝到Linux下不好使的问题,
3)以及mysql5需要设置密码的问题,
4)mysql5在linux下对数据库区分大小写的问题。
5) mysql在终端进入
mysql>
时的用户名和密码问题

此外,在具体安装mysql5的过程中,要注意将mysql5的安装位置(baseDir),数据库的具体存放位置(dataDir),端口号(改为3307),进行修改,这样才能保证两个不同版本的数据库的同时运行。

版本号:
MySQL v4.0.24
(1)MySQL-server-4.0.24-0.i386.rpm
(2)MySQL-client-4.0.24-0.i386.rpm
(3)MySQL-devel-4.0.24-0.i386.rpm
MySQL 5.0.51a
mysql-5.0.51a.tar.gz
下载地址:http://ftp.ntu.edu.tw/pub/MySQL/Downloads/MySQL-5.0/mysql-5.0.51a.tar.gz

安装MySQL v4.0.24
#rpm -qa | grep sql
查询系统是否默认安装了mysql服务器
然后卸载系统默认安装的mysql
卸载mysql命令如下:
#rpm -e --nodeps mysql-3.23.58-1

安装MySQL服务端:
#rpm -ivh MySQL-server-4.0.24-0.i386.rpm
测试服务端是否安装成功:
#netstat -nat
查看端口3306是否打开
然后安装MySQL客户端
#rpm -ivh MySQL-client-4.0.24-0.i386.rpm
安装MySQL连接包:
#rpm -ivh MySQL-devel-4.0.24-0.i386.rpm
此时Mysql4的各个安装路径如下:
以我们在Redhat下安装的MySQl4.0.26数据库为例:
(注意事项:rpm包使用的都是默认的设置,不能更改,以下均为默认设置)
1.配置文件:/etc/my.cnf
2.数据库目录:/var/lib/mysql
3.启动脚本:/etc/rc.d/init.d/mysql
4.端口3306
5..socket文件/tmp/mysql.socket
——————————————————————————————————————

下面安装MySQL 5.0.51a

由于我们安装的MySQL4.0.26的安装包类型是rpm包,所以,需要大家注意的是,
它使用的都是默认的设置,安装后生成的配置文件和数据库目录等等一系列的配置都是我们不能改变的。
因此,如果要在同一开发环境下安装两个数据库的话,我们就必须处理以下这些问题:
1.配置文件安装路径不能相同
2.数据库目录不能相同
3.启动脚本不能同名
4.端口不能相同
5..socket文件的生成路径不能相同
依据上面的各种要求:mysql5.0.51a.tar.gz的源码包安装做出以下调整:
--prefix=/usr/local/mysql5 ### 数据库安装目录
--localstatedir=/var/lib/mysql5 ### 数据库存放目录
--with-charset=gbk --with-collation=gbk_chinese_ci --with-extra-charsets=all ### 字符集gbk加载和gbk_chinese_ci加载,可处理中文乱码问题
其他的设置是对数据库的一下优化,在此就不再赘述。

参考了一些msyql5的安装文档,在这里感谢各位前辈
mysql-5.0.51a.tar.gz解压后的安装详解:

1# cd mysql-5.0.51a
2# mkdir /usr/local/mysql5

(这步骤中的诸多参数中,关键的参数已经在前面介绍了,如有不懂,请参看前面的介绍。)
3# ./configure
--prefix=/usr/local/mysql5
--localstatedir=/var/lib/mysql5 --with-comment=Source
--with-server-suffix=-Community
--with-mysqld-user=mysql
--without-debug
--with-big-tables
--with-charset=gbk --with-collation=gbk_chinese_ci --with-extra-charsets=all
--with-pthread
--enable-static
--enable-thread-safe-client
--with-client-ldflags=-all-static
--with-mysqld-ldflags=-all-static
--enable-assembler
--without-innodb
--without-ndb-debug
4# make
5# make install

6.# useradd mysql //添加 mysql 用户
7# cd /usr/local/mysql5
(注意:!!!在安装第二个数据库时候,虽然在./configure后加上了--localstatedir=/var/lib/mysql5 但是并未在/var/lib下产生mysql5目录,所以我们要在源码包编译安装完成之后先检查一下是否有这个目录,如果没有的话一定要手动创建一个命令:# mkdir /var/lib/mysql5再执行第八步骤。)
8# bin/mysql_install_db --user=mysql
(在确保第七步骤正确完成之后,在执行本步骤时,如果正确的话,在/var/lib/mysql5下将会产生相应的数据库文件。)
9# chown -R root:mysql .       //设置权限,注意后面有一个 "."
10# chown -R mysql /var/lib/mysql5   //设置 mysql 目录权限
11# chgrp -R mysql .          //注意后面有一个 "."
12# cp share/mysql/my-huge.cnf /etc/my5.cnf
13# cp share/mysql/mysql.server /etc/rc.d/init.d/mysql5 //开机自动启动 mysql。
14# chmod 755 /etc/rc.d/init.d/mysql5
15# chkconfig --add mysql5

16以下是安装第二个数据库时,对启动文件mysql5和配置文件my5.cnf做出的必要修改。
===================================================================================
/etc/rc.d/init.d/mysql5

修改下面的内容:

1.datadir=/var/lib/mysql5
2.conf=/etc/my5.cnf
3.把"$bindir/mysqld_safe --datadir=$datadir --pid-file=$server_pid_file $other_args >/dev/null 2>&1 &"替换为(双引号中的)
"$bindir/mysqld_safe --defaults-file=/etc/my5.cnf --datadir=$datadir --pid-file=$server_pid_file $other_args >/dev/null 2>&1 &"(双引号中的)
===================================================================================
/etc/my5.cnf

修改下面的内容:

port = 3307 ###修改相关的端口
socket文件生成路径

把[client]和[mysqld]中的port号都改成3307,
socket = /tmp/mysql.sock改成socket = /tmp/mysql5.sock
[client]
#password = your_password
port = 3307
socket = /tmp/mysql5.sock

# Here follows entries for some specific programs

# The MySQL server
[mysqld]
port = 3307
socket = /tmp/mysql5.sock
==================================================================================
17# /etc/rc.d/init.d/mysql5 start           //启动 MySQL
18# bin/mysqladmin -u root password "password_for_root" ### 设置数据库JDBC连接的密码
注意事项:此密码与从终端客户端登陆数据库的密码是否为同一密码,还存在疑问。
设置终端客户端登陆数据库的密码:(默认设置:用户名:root 密码:(空))
19# cd /usr/local/mysql5/bin(进入数据库安装目录下执行以下命令)
20# ./mysql -u root -p (登陆数据库,以mysql>开头均属数据库内的操作,注意不要丢掉分号
mysql> use mysql;

mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> exit;
21# service mysql5 stop               //关闭 MySQL

22tomcat部署文件下的修改:
修改/usr/tomcat/jetmambo/WEB-INF/classes/jdbc.properties
1.3306改成3307
2.jdbc.password=system(注意事项:这个密码就是数据库JDBC连接的密码)

修改后如下:
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3307/timef3_cmd?&useUnicode=true&characterEncoding=gbk
jdbc.username=root
jdbc.password=system

23启动数据库和WEB服务器,验证数据库安装是否成功
/etc/init.d/mysql restart
/etc/init.d/mysql5 restart
注意事项:必须保持两个数据库都开启服务,否则tomcat报SQLException
/usr/tomcat/bin/catalina.sh run

补充说明:

24linux下默认数据库中表名不忽略大小写,做如下设置:
/etc/my5.cnf

# The MySQL server
[mysqld]
lower_case_table_names = 1 ### 1为忽略大小写 0为不忽略大小写
port = 3307
socket = /tmp/mysql5.sock

————————————————————————————————————
遗留问题,不知那位大侠可以解答一下:
在终端进入
>mysql时
报:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
错误。
分享到:
评论

相关推荐

    yum安装jdk和mysql和tomcat软件(CentOS6实战经验)

    ### yum安装JDK、MySQL与Tomcat软件(CentOS6实战经验) #### 一、安装JDK 在CentOS 6环境下使用`yum`来安装Java Development Kit (JDK) 是一个简单且直接的方法。 ##### 步骤1:检查yum库中是否存在可用的Java...

    软件开发实战:PHP+MySQL开发实战

    4. **丰富的存储引擎**:MySQL 支持多种存储引擎,包括 InnoDB、MyISAM 等,可以根据不同的需求选择合适的存储引擎。 5. **开源免费**:MySQL 是一款开源软件,用户可以自由地使用、修改和分发 MySQL 的源代码。 ##...

    MySQL Cluster集群构建实战

    本案例将详细介绍如何在一个测试环境中搭建一个最小规模的MySQL Cluster集群,包含一个管理节点、两个数据节点和两个SQL节点。 **系统环境**: - 操作系统:Red Hat Enterprise Linux 6 - MySQL Cluster版本:...

    mysql45讲.zip

    2. **安装与配置**:包括在不同操作系统上(如Windows、Linux、MacOS)的安装步骤,以及如何配置MySQL服务器和客户端工具。 3. **数据库和表的概念**:解释数据库和表的基本概念,以及如何创建、删除和修改数据库及...

    Linux系统快速实战.pdf

    一旦安装完成,你会发现在你的主机上多了两个虚拟网卡,这是为了让虚拟机与主机之间能相互通信。 在VMWare中安装Linux,首先需要新建一个虚拟机。在选择安装模式时,根据个人需求选择合适的选项。然后,你需要指定...

    linux运维学习笔记:MySQL主从复制原理和实战.pdf

    部署环境通常涉及两个MySQL服务器实例,一个是主库(例如db01),另一个是从库(例如db02)。每个实例都需要配置数据库配置文件(/etc/***f),并且都需要重启以应用更改。 在具体配置MySQL主从复制时,首先需要...

    实战LINUX+SHELL编程与服务器管理(2/2)

    本资源包“实战LINUX+SHELL编程与服务器管理”提供了深入学习这两个关键领域的实践指导,分为两个部分,旨在帮助用户提升其在Linux环境中的操作效率。 1. **Linux基础**:Linux是一个开源的操作系统,基于Unix,被...

    Linux+redis实战视频教程.txt

    通过以上知识点的学习,不仅可以深入了解Linux操作系统的基础知识,还能掌握Linux环境下常用软件的安装配置方法,并且能够熟练使用Redis进行数据存储和管理。这对于从事IT行业的技术人员来说是非常宝贵的技能集合。

    linux+redis实战资料

    这里我们主要聚焦于如何在Linux环境下安装和实战Redis,同时也会涉及到与之相关的JDK、MySQL和Tomcat的安装过程。 首先,让我们详细了解一下Redis。Redis是一个开源(BSD许可)的内存数据结构存储系统,可以作为...

    MYSQL主从同步实战

    ### MySQL 主从同步实战 #### 一、MySQL主从复制简介 MySQL的主从复制机制是一种数据冗余和高可用性的解决方案,通过该机制可以在一台或多台从服务器上复制主服务器的数据更新。这种方式通常用于备份、负载均衡...

    集群好书《高性能Linux服务器构建实战》 试读章节下载

    《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》,即将上架发行,此书从Web应用、数据备份与恢复、网络存储应用、运维监控与性能优化、集群高级应用等多个方面深入讲解了如何构建高性能的Linux服务器。...

    【PDF版本】老男孩教育Linux高端运维及云计算架构师-就业班20170513V9.pdf

    根据提供的文件信息,我们可以将这份课程大纲分解为多个阶段,并从中提炼出重要的IT知识点,特别是针对Linux运维领域。下面是对各个阶段所涉及的关键知识点的详细解释: ### 第一阶段:Linux基础 - **开班课程介绍...

    超级详细的MySQL数据库实战教程(包教包会)

    ### MySQL数据库实战教程知识点详解 #### 1. MySQL简介 - **历史背景**:MySQL是由瑞典MySQL AB公司开发的一款开放源代码的关系型数据库管理系统(RDBMS),后来被Sun Microsystems收购,现属于Oracle公司旗下产品。...

    PHP+MySQL光盘资料

    在IT领域,PHP和MySQL是两个非常重要的技术,它们在构建动态网站和应用程序中发挥着核心作用。PHP是一种广泛使用的开源脚本语言,主要用于Web开发,可以嵌入到HTML中,为网页添加交互性和功能。而MySQL则是一种关系...

    Linux实战型企业运维工程师试题测评 433页

    根据提供的文件信息,以下是Linux实战型企业运维工程师试题测评的知识点详解: 1. NGINX代理日志记录问题:在配置NGINX作为反向代理服务器时,需要记录真实的客户端IP地址,而不是代理服务器自身的IP地址。这可以...

    Linux从入门到实战学习教程-14CentOS Stream & Rocky Linux.pptx

    在本Linux从入门到实战的学习教程中,我们将深入探讨与CentOS Stream和Rocky Linux相关的主题,这将有助于你理解这两个流行的Linux发行版的核心概念及其重要性。以下是这些章节的详细内容: 14.1 接触CentOS 8: ...

Global site tag (gtag.js) - Google Analytics