데이터 베이스 MySQL 튜토리얼 MySQL升级:从4.1到5.0

MySQL升级:从4.1到5.0

Jun 07, 2016 pm 04:04 PM
mysql 치받이 설치하다 힌트 새 버전

提示:在安装任何新版本的软件之前,最好备份一下你的数据。尽管mysql已经最大限度的保证高质量服务,但当你使用软件的测试发布版本时,你还是应该采取备份的方式来保护你的数据。大体来说,在从mysql从4.1升级到5.0时,你需要做得主要包括以下几个步骤: 这

提示:在安装任何新版本的软件之前,最好备份一下你的数据。尽管mysql已经最大限度的保证高质量服务,但当你使用软件的测试发布版本时,你还是应该采取备份的方式来保护你的数据。大体来说,在从mysql从4.1升级到5.0时,你需要做得主要包括以下几个步骤:
•这部分主要检查稍后建立起的修改列表里的表项,目的是为了查找其中是否存在会影响你的应用程序的表项。这里具体要注意哪些标志着Incompatible change的选项;这些会造成与Mysql早期版本不匹配,并且应该在更新之前引起你的注意。
•阅读MySQL 5.0的历史进程,理解你在5.0中能够使用的重要的新特征。可以参阅Section D.1, “Changes in release 5.0.x (Production)”
•如果你是在Windows下运行Mysql 服务器,请参阅Section 2.3.15, “Upgrading MySQL on Windows”部分。同时你也应该注意到Windows下的Mysql服务器中有两个是重新命名的,具体可以参阅Section 2.3.9, “Selecting a MySQL Server type”
•MySQL 5.0增加了对于存储信息的程序的支持。该项支持需要在你的mysql数据库中的proc数据表。为了生成该文件,你应该运行mysql_fix_privilege_tables脚本,有关该脚本的描述,请参阅Section 2.10.3, “Upgrading the Grant Tables”。
•MySQL5.0添加了浏览功能。该项支持需要在mysql数据库中的user和db表格中添加额外的特殊权限列。为了生成这些列,你应该运行mysql_fix_privilege_tables脚本,具体的描述见Section 2.10.3, “Upgrading the Grant Tables”.
•如果你使用复制功能,请参阅Section 6.6, “Upgrading a Replication Setup”,该部分主要提供了升级你的复制设置的相关信息。 几个可视化行为已经在MySQL 4.1和MySQL5.0之间被改变,目的是为了保证MySQL和标准SQL的兼容性。这些改变有可能影响你的应用程序。 下面的列项主要描述了有可能影响应用程序的变化,因此你应该在将MySQL更新到版本5.0之前特别注意这些列项。
几个变化:
•不兼容变化:对于InnoDB和MyISAM表格的TEXT列中的末端空间的索引顺序改变了。从版本5.0.3开始,TEXT索引被看作是末尾的填补空间部分(如同MySQL的数据类型中的char、VARCHAR和TEXT域)。如果你在文本列中有一个索引,那么你应该在其上运行CHECK TABLE命令。如果该检查报错,则需重建索引:如果是一个InnoDB表格,则清除并重新装载该表格,如果它是个MyISAM表格则运行OPTIMIZE TABLE 或者 REPAIR TABLE命令。
•不兼容变化:含有DECIMAL 列的MyISAM 和InnoDB表格将会在升级到MySQL 5.0.6后出现损坏。在更新之前,要先将这些表格采用mysqldump进行清除,同时在更新之后重新装载它们。(当在MySQL5.0.6中生成的这些表格在较低版本如MySQL 5.0.3到 5.0.5中使用时,同样的不匹配情况会发生)
•不兼容变化:对于MySQL 5.0.3,服务器默认不再加载用户定义的函数除非它们除了主函数符号外至少还有一个辅助标记(例如,xxx_init或者xxx_deinit符号)。该行为可以被--allow-suspicious-udfs选项所忽略。可参阅Section 25.2.3.6, “User-Defined Function Security Precautions”.
•不兼容变化:在MySQL 5.0中更新日志将会被删除掉。如果你事先把它激活的话,你实际上激活的是二进制日志。
•不兼容变化:对于ISAM存储机制的支持已经被删除掉。如果你有任何的ISAM表格,你应该在更新之前对其进行转换。例如将一个ISAM表格转化成使用MyISAM存储机制,可使用以下的声明实现:
ALTER TABLE tbl_name ENGINE = MyISAM; 你数据库中的其他ISAM表格的处理与此相同。
•不兼容变化:在MySQL 5.0中,对于MyISAM表格的RAID选项的支持已被删除。如果你有使用这些选项的表格,你应该在更新之前对其进行转换。一种方法是采取mysqldump命令清除这些表格,编辑dump文件以删除在CREATE TABLE声明中RAID选项,同时重新加载dump文件。另一种方法是使用CREATE TABLE new_tbl ... SELECT raid_tbl声明来制造一个新的RAID表格。然而,该声明中的CREATE TABLE部分必须含有足够的信息来重新生成列和索引的属性,否则列和索引的属性有可能丢失,而不会出现在新表格当中。可参阅Section 13.1.5, “CREATE TABLE Syntax”。
•在一个具体的数据库中,对于RAID表格的.MYD文件存储在数据库目录下,而该目录是在名字含有两个16进制位(即00至ff)数值的子目录中的。在对所有使用RAID选项的表格进行转换后,这些RAID-相关的子目录可能依然存在但是是可以被删除的。在证明他们确实是空的之后,可以手工将他们删除。(如果它们非空的话,则说明有一些RAID表格尚未被转换)。
•在MySQL 5.0.6中,存储例程和触发器的二进制日志已经发生了变化。这个变化主要涉及到安全,复制,数据恢复,有关这方面的讨论请见Section 18.4, “Binary Logging of Stored Routines and Triggers”. 。
SQL 的变化:
•不兼容变化:在MySQL 5.0.10对于触发器的命名空间已经改变。以前的版本中,每个表格中,触发器的名字是唯一的。现在对于schema(数据库)必须是唯一的。这种改变的潜在原因是DROP TRIGGER语法现在使用schema名字而不是表格名(schema在可忽略的情况下是被选择的,即当前的schema将会被使用)。当从以前的版本MySQL 5更新到MySQL5.0.10或者更新的版本时,你必须删除所有的触发器并且重新生成他们,否则的话,在更新之后,DROP TRIGGER将不会起作用。为了实现这个目的,我们特别提供了以下参考步骤:
1 将MySQL版本升级至5.0.10以能够访问INFORMATION_SCHEMA.TRIGGERS表格中的触发器信息(它应该对于5.0.10以前版本的触发器同样有效。)
2 使用下面的SELECT声明来删除所有的触发器定义
SELECT CONCAT('CREATE TRIGGER ', t.TRIGGER_SCHEMA, '.', t.TRIGGER_NAME,' ', t.ACTION_TIMING, ' ', t.EVENT_MANIPULATION , ' ON ', t.EVENT_OBJECT_SCHEMA, '.', t.EVENT_OBJECT_TABLE' FOR EACH ROW ', t.ACTION_STATEMENT, '//' )
INTO OUTFILE '/tmp/triggers.sql'
FROM INFORMATION_SCHEMA.TRIGGERS AS t;
该声明使用INTO OUTFILE,所以你必须拥有FILE权限。该文件将会被在服务器主机上生成;可以根据你的喜好,来选择一个不同的文件名。为了绝对的安全,检查triggers.sql文件中的触发器定义,如果必要的话,对该文件进行一下备份。
1停止服务器同时通过删除你数据库目录中所有的.TRG文件来删除所有的触发器。改变当前路径到你数据库的目录下,同时输入命令如下: shell> rm */*.TRG
2启动服务器,同时使用triggers.sql文件重新生成所有的触发器。在本例子当中,命令如下:
1.mysql> delimiter // ;
2.mysql> source /tmp/triggers.sql //
3使用SHOW TRIGGERS声明来检查是否所有的触发器成功生成。
로그인 후 복사
•不兼容变化:对于MySQL 5.0.15, CHAR()函数返回一个二进制字符串而不是一套连接字符集中的字符串。而一个可供选择的USING charset语句句有可能被用来生成一个具体的字符集。同时,比256字符长的变量有可能被用来生成一个单一的字符集。这些改变有可能造成不匹配。
o  CHAR(ORD('A')) = 'a' is no longer true: 
omysql> SELECT CHAR(ORD('A')) = 'a';
o+----------------------+
o| CHAR(ORD('A')) = 'a' |
o+----------------------+
o|                    0 |
o+----------------------+
로그인 후 복사
为了进行比较,你可以通过增加一个USING语句或者对结果进行转化在非二进制字符集中生成一个结果字符串。
mysql> SELEC CHAR(ORD('A') USING latin1) = 'a';
+-----------------------------------+
| CHAR(ORD('A') USING latin1) = 'a' |
+-----------------------------------+
|                                 1 |
+-----------------------------------+
mysql> SELECT CONVERT(CHAR(ORD('A')) USING latin1) = 'a';
+--------------------------------------------+
| CONVERT(CHAR(ORD('A')) USING latin1) = 'a' |
+--------------------------------------------+
|                                          1 |
+--------------------------------------------+
로그인 후 복사
oCREATE TABLE … SELECT CHAR(…)生成了VARBINARY列而不是VARCHAR列。为了生成VARCHAR列,使用USING 或者 CONVERT()来将CHAR()转换成如同刚才描述的非二进制字符集。
o在以前的版本中,下面的声明将0x00410041('AA'作为ucs2字符串)插入到表格中,而对于MySQL 5.0.15,声明采取0x414值来插入一个ucs2字符。
oCREATE TABLE t (ucs2_column CHAR(2) CHARACTER SET ucs2);
oINSERT INTO t VALUES (CHAR(0x41,0x41));
•不兼容变化:从MySQL 5.0.12开始,自然连接和使用USING命令的连接包括外部连接变量,通过SQL:2003标准来进行处理的。这个改变包括对NATURAL和使用USING语句的连接去除多余的输出列,同时规范输出列表的次序。现在逗号操作符的优先级仍然低于JOIN。
•小数点数列以一种更为有效的格式进行存储。为了将一个表格转换为使用新的DECIMAL(浮点数)类型,你应该在它上面执行一个ALTER TABLE命令。ALTER TABLE命令也改变了表格的VARCHAR列以能够使用新的VARCHAR列类型。对于和原有的应用程序可能不匹配的信息,可查阅Chapter 22, Precision Math
•MySQL 5.0.3及更高的版本在计算点数值时使用数字精度集(64位浮点数)同时回绕精确的数字。可参见Chapter 22, Precision Math
•对于MySQL 5.0.3,结尾空间将不再被从VARCHAR和VARBINARY列中移除,在MySQL 5.0.3和后续版本,对于VARCHAR 和VARBINARY列的最大长度是65,535字符和65,535字节。
注意:如果你在MySQL 5.0.3或者后续版本中,你生成了含有新的VARCHAR或者r VARBINARY列的表,那这些表格将在低于MySQL 5.0.3版本中不起作用。在降级之前将这些表格清除掉,同时在降级之后对其进行重载。
•对于MySQL 5.0.3,BIT是一个单独的数据类型,而不是TINYINT(1)的同义。可参阅Section 11.1.1, “Overview of Numeric Types”
•MySQL 5.0.2添加了几个用于更加严格控制丢弃含有不合法或者丢失数值的记录。可参阅Section 5.3.2, “The Server SQL Mode”. 和Section 1.8.6.2, “Constraints on Invalid Data”。如果你想激活这项控制但同时继续使用存储的不正确日期,例如'2004-02-31',你应该采取--sql_mode=TRADITIONAL,ALLOW_INVALID_DATES启动服务器。
•对于MySQL 5.0.2,SCHEMA和SCHEMAS关键字被分别当作DATABASE和DATABASES同义字所接受。(然而“schemata”是语法正确的,同时有可能出现在MySQL 5.0的系统数据库和数据表格名字中,因此它能够被作为一个输出的关键字使用)
•在MySQL 5.0,用户变量是不区分大小写的。在MySQL 4.1中,SET @x = 0; SET @X = 1; SELECT @x;生成两个变量同时返回0.而在MySQL 5.0,该命令生成一个变量同时返回1.
•一个名字为innodb_table_locks启动选择项被添加了进来,该选项可能导致LOCK TABLE同时也需要InnoDB表格锁。该选项默认是被激活的。这有可能导致使用AUTOCOMMIT=1和 LOCK TABLES的应用程序死锁。如果你的应用程序在升级之后遇到死锁的情况,你可能需要添加innodb_table_locks=0到你的my.cnf文件。
C API 改变:
• 因为MySQL 5.0服务器有对小数类型的数据有一种新的执行功能,如果该服务器被一些仍由MySQL4.1版本的客户程序库链接而成的老版本客户程序所使用,就会出现一个问题,如果一个客户使用二进制客户机程序/服务器协议来执行准备好的能产生数值结果的声明,就会出现错误提示:错误发生的原因是4.1版本客户程序库并不支持在5.0版本中增加的新MYSQL_TYPE_NEWDECIMAL类型。而服务器这端,却没有屏蔽这种新的小数数据类型的途径。你可以通过和来自MySQL 5.0的客户端库的应用程序进行重链接来避免这个问题。
• MYSQL结构中的再连接标志可以通过mysql_real_connect()设置为0。而只有那些在进行mysql_real_connect()以后没有明确的把标志设为0或1的客户端程序才会发生变化。默认情况下自动重新连接是被认为是危险的(主要是由于表格锁,临时表格,用户变量以及会话变量在重新连接后有可能被丢失)。
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

MySQL : 세계에서 가장 인기있는 데이터베이스 소개 MySQL : 세계에서 가장 인기있는 데이터베이스 소개 Apr 12, 2025 am 12:18 AM

MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템으로, 주로 데이터를 신속하고 안정적으로 저장하고 검색하는 데 사용됩니다. 작업 원칙에는 클라이언트 요청, 쿼리 해상도, 쿼리 실행 및 반환 결과가 포함됩니다. 사용의 예로는 테이블 작성, 데이터 삽입 및 쿼리 및 조인 작업과 같은 고급 기능이 포함됩니다. 일반적인 오류에는 SQL 구문, 데이터 유형 및 권한이 포함되며 최적화 제안에는 인덱스 사용, 최적화 된 쿼리 및 테이블 분할이 포함됩니다.

MySQL의 장소 : 데이터베이스 및 프로그래밍 MySQL의 장소 : 데이터베이스 및 프로그래밍 Apr 13, 2025 am 12:18 AM

데이터베이스 및 프로그래밍에서 MySQL의 위치는 매우 중요합니다. 다양한 응용 프로그램 시나리오에서 널리 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템입니다. 1) MySQL은 웹, 모바일 및 엔터프라이즈 레벨 시스템을 지원하는 효율적인 데이터 저장, 조직 및 검색 기능을 제공합니다. 2) 클라이언트 서버 아키텍처를 사용하고 여러 스토리지 엔진 및 인덱스 최적화를 지원합니다. 3) 기본 사용에는 테이블 작성 및 데이터 삽입이 포함되며 고급 사용에는 다중 테이블 조인 및 복잡한 쿼리가 포함됩니다. 4) SQL 구문 오류 및 성능 문제와 같은 자주 묻는 질문은 설명 명령 및 느린 쿼리 로그를 통해 디버깅 할 수 있습니다. 5) 성능 최적화 방법에는 인덱스의 합리적인 사용, 최적화 된 쿼리 및 캐시 사용이 포함됩니다. 모범 사례에는 거래 사용 및 준비된 체계가 포함됩니다

MySQL을 사용하는 이유는 무엇입니까? 혜택과 장점 MySQL을 사용하는 이유는 무엇입니까? 혜택과 장점 Apr 12, 2025 am 12:17 AM

MySQL은 성능, 신뢰성, 사용 편의성 및 커뮤니티 지원을 위해 선택됩니다. 1.MYSQL은 효율적인 데이터 저장 및 검색 기능을 제공하여 여러 데이터 유형 및 고급 쿼리 작업을 지원합니다. 2. 고객-서버 아키텍처 및 다중 스토리지 엔진을 채택하여 트랜잭션 및 쿼리 최적화를 지원합니다. 3. 사용하기 쉽고 다양한 운영 체제 및 프로그래밍 언어를 지원합니다. 4. 강력한 지역 사회 지원을 받고 풍부한 자원과 솔루션을 제공합니다.

Apache의 데이터베이스에 연결하는 방법 Apache의 데이터베이스에 연결하는 방법 Apr 13, 2025 pm 01:03 PM

Apache는 데이터베이스에 연결하여 다음 단계가 필요합니다. 데이터베이스 드라이버 설치. 연결 풀을 만들려면 Web.xml 파일을 구성하십시오. JDBC 데이터 소스를 작성하고 연결 설정을 지정하십시오. JDBC API를 사용하여 Connections, 명세서 작성, 매개 변수 바인딩, 쿼리 또는 업데이트 실행 및 처리를 포함하여 Java 코드의 데이터베이스에 액세스하십시오.

Docker의 MySQL을 시작하는 방법 Docker의 MySQL을 시작하는 방법 Apr 15, 2025 pm 12:09 PM

Docker에서 MySQL을 시작하는 프로세스는 다음 단계로 구성됩니다. MySQL 이미지를 가져와 컨테이너를 작성하고 시작하고 루트 사용자 암호를 설정하고 포트 확인 연결을 매핑하고 데이터베이스를 작성하고 사용자는 데이터베이스에 모든 권한을 부여합니다.

MySQL의 역할 : 웹 응용 프로그램의 데이터베이스 MySQL의 역할 : 웹 응용 프로그램의 데이터베이스 Apr 17, 2025 am 12:23 AM

웹 응용 프로그램에서 MySQL의 주요 역할은 데이터를 저장하고 관리하는 것입니다. 1. MySQL은 사용자 정보, 제품 카탈로그, 트랜잭션 레코드 및 기타 데이터를 효율적으로 처리합니다. 2. SQL 쿼리를 통해 개발자는 데이터베이스에서 정보를 추출하여 동적 컨텐츠를 생성 할 수 있습니다. 3.mysql은 클라이언트-서버 모델을 기반으로 작동하여 허용 가능한 쿼리 속도를 보장합니다.

Centos 설치 MySQL Centos 설치 MySQL Apr 14, 2025 pm 08:09 PM

Centos에 MySQL을 설치하려면 다음 단계가 필요합니다. 적절한 MySQL Yum 소스 추가. mysql 서버를 설치하려면 yum install mysql-server 명령을 실행하십시오. mysql_secure_installation 명령을 사용하여 루트 사용자 비밀번호 설정과 같은 보안 설정을 작성하십시오. 필요에 따라 MySQL 구성 파일을 사용자 정의하십시오. MySQL 매개 변수를 조정하고 성능을 위해 데이터베이스를 최적화하십시오.

CentOS7에 MySQL을 설치하는 방법 7 CentOS7에 MySQL을 설치하는 방법 7 Apr 14, 2025 pm 08:30 PM

MySQL을 우아하게 설치하는 열쇠는 공식 MySQL 저장소를 추가하는 것입니다. 특정 단계는 다음과 같습니다. 피싱 공격을 방지하기 위해 MySQL 공식 GPG 키를 다운로드하십시오. MySQL 리포지토리 파일 추가 : rpm -uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm yum repository cache : yum 업데이트 설치 mysql : yum 설치 mysql-server startup startup mysql 서비스 : systemctl start mysqlctl start mysqlctl.

See all articles