`
晨星★~雨泪
  • 浏览: 441592 次
  • 性别: 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)
错误。
分享到:
评论

相关推荐

    《Linux服务器配置与管理》教学课件—第-11-章--MySQL-服务器配置.pptx

    在MySQL 5.7仓库安装完成后,会在"/etc/yum.repos.d/"目录下生成两个文件,即mysql-community.repo文件和mysql-community-source.repo文件,我们主要查看mysql-community.repo文件中的配置,在该文件中默认会包含几...

    MySQL 数据库两台主机同步实战(linux)

    在实际项目中,两台分布于异地的主机上安装有MySQL数据库,两台服务器互为主备,客户要求当其中一台机器出现故障时,另外一台能够接管服务器上的应用,这就需要两台数据库的数据要实时保持一致,在这里使用MySQL的...

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

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

    高性能Linux服务器构建实战:运维监控、性能调优与集群应用

    《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》以构建高性能Linux服务器为核心内容...最后以构建一个MySQL+heartbeat+DRBD+LVS集群系统的实战案例结束全书,巧妙地将本书的所有核心内容都融合到了一起。

    Hadoop实战手册

    使用Mysql构建简单数据集市29#Mysql的两种引擎介绍29#创建一个数据表使用Hive cli 进行数据分析29#使用shell 编写Hsql 并使用HiveCli导出数据,使用Mysql命令加载到数据库中。29#使用crontab 新增每日运行任务定时器...

    PHP开发实战1200例源码

    实例046 比较两个时间戳的大小 77 实例047 使用条件运算符判断数字的奇偶性 78 实例048 判断用户是否具有后台管理权限 79 实例049 打印随机组合生日祝福语 80 实例050 打印2000~2020年的所有闰年 81 实例051 前置...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例046 比较两个时间戳的大小 77 实例047 使用条件运算符判断数字的奇偶性 78 实例048 判断用户是否具有后台管理权限 79 实例049 打印随机组合生日祝福语 80 实例050 打印2000~2020年的所有闰年 81 实例051 前置...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例046 比较两个时间戳的大小 77 实例047 使用条件运算符判断数字的奇偶性 78 实例048 判断用户是否具有后台管理权限 79 实例049 打印随机组合生日祝福语 80 实例050 打印2000~2020年的所有闰年 81 实例051 前置...

    老男孩python 四期

    ※设定两个故事场景,场景可以穿插衔接,人物之间有关系和互动并且互相影响,根据 不同用户的玩法实现开放式结局 第五天 1、Socket 介绍 2、Python socket 语法 3、简单的socket 交互程序 4、Socket Server的开发与...

    PHP入门到精通

    2.5Linux下的服务器环境 2.6Windows下使用组合包 2.7PHP常用开发工具 2.8第一个PHP实例 3.PHP语言基础(教学录像:49分19秒) 3.1PHP标记风格 3.2PHP注释的应用 3.3PHP的数据类型 3.4PHP常量 3.5PHP变量 3.6PHP...

    PHP入门到精通02

    2.5Linux下的服务器环境 2.6Windows下使用组合包 2.7PHP常用开发工具 2.8第一个PHP实例 3.PHP语言基础(教学录像:49分19秒) 3.1PHP标记风格 3.2PHP注释的应用 3.3PHP的数据类型 3.4PHP常量 3.5PHP变量 3.6PHP...

    使用rails6 开发纯后端 API 项目

    使用的技术栈包括 L N M R R【linux nginx mysql redis ruby 】 等! 本书分为13大章节 - 第一章:环境准备工作 - 第二章:API 版本的管理 - 第三章:实战项目分析 - 第四章:用户模块的开发 - 模型相关开发 - ...

    .net开源的综合开发框架wojilu框架.zip

    “我记录”这套源码总共包括 两个部分:一个 .net 平台下的全栈式、轻量级开发框架,包括 ORM、MVC、IOC、AOP、JSON、LOG 等,同时包括全套图文教程;用这个框架开发的 SNS 互联网产品。本产品以 SNS 为基础平台,...

    python入门到高级全栈工程师培训 第3期 附课件代码

    06 linux操作系统安装 07 初识linux命令 08 linux操作系统目录结构 09 目录及文件操作 第4章 01 上节课复习 02 创建用户相关的文件 03 用户增删该查及组相关操作 04 对文件的权限管理 05 对目录的权限管理 06 权限...

    最新Java面试题视频网盘,Java面试题84集、java面试专属及面试必问课程

    面试题包含了不同技术层面的面试问题,同时也能对一些没有面试开发经验的小白给予不可估量的包装, 让你的薪水绝对翻倍, 本人亲试有效.Java面试题84集、java面试专属及面试必问课程,所有的面试题有视屏讲解, 解答方案....

    ELK Stack入门到实战(一)基础架构之五

    ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后...

    网吧维护技术资料 合集

    1312 网吧维护\win2003系统自动登录的两种方法 .txt 2691 网吧维护\Windows XP 中实现目录共享.txt 2987 网吧维护\windows XP系统总命令集合.txt 2562 网吧维护\WINDOWS98安装参数详解.txt 11786 网吧维护\Windows...

Global site tag (gtag.js) - Google Analytics