링크 ux my sql 5.5 에서 my sql 5.7 로 업그레이드 하 는 절차 와 밟 은 구덩이
다음은 간단 한 업그레이드 my sql 절 차 를 공유 하고 그 다음 에 저희 가 여러 가지 보충 을 정리 해 드 렸 으 니 참고 하 시기 바 랍 니 다.
1.mysql 5.7.32 다운로드
공식 다운로드 주소
스트레스 를 풀다
tar xvf mysql.tar.gz mysql/
2.오래된 my sql 의 bin 디 렉 터 리 에 들 어가 my sql 데 이 터 를 내 보 냅 니 다.
./mysql -uroot -pxxxx -h127.0.0.1 -P3306 3.새로운 my sql 루트 디 렉 터 리 에 들 어가 데 이 터 를 저장 할 data 디 렉 터 리 를 만 듭 니 다.
mkdir data
4.압축 을 풀 었 던 새 데이터베이스 에 대해 서 는 초기 화 명령 을 먼저 실행 합 니 다.
cd bin
./mysql_install_db --basedir=../ --datadir=../data
PS:상기 업 그 레이 드 는 Cent OS 에 있 습 니 다.그런데 낙찰 된 기린 이 제 가 업 그 레이 드 했 을 때 위의 문 구 를 모 르 는 것 을 발 견 했 습 니 다.아래 의 초기 화 문 구 를 바 꿔 야 합 니 다.
./mysqld --defaults-file=../my.cnf --basedir=../ --datadir=../data --user=root --initialize
5.비밀번호 건 너 뛰 기 로그 인 설정
my.cnf 의[my sqld]에 skip-grant-tables 를 추가 합 니 다.
my.cnf 데이터베이스 설정 파일
6.서비스 시작
./mysqld --defaults-file=../my.cnf --basedir=../ --datadir=../data --user=root
7.비밀번호 설정
새 명령 행 창 에 my sql 로그 인
./mysql -uroot
use mysql;
update mysql.user set authentication_string=password('xxxx') where user='root';
8.서비스 정지
설정 파일 의 skip-grant-tables 를 설명 합 니 다.
9.서비스 시작
./mysqld --defaults-file=../my.cnf --basedir=../ --datadir=../data --user=root
10.새 명령 줄 로그 인
./mysql -uroot -pxxxx
use mysql;
이 때:어떤 명령 을 실행 하 든 항상 이것 을 알려 줍 니 다.ALTER USER statement 을 사용 하여 이 statement 을 실행 하기 전에 암 호 를 재 설정 해 야 합 니 다.
다음 문 구 를 실행 합 니 다.
SET PASSWORD = PASSWORD('xxxx');
11.mysql 에 연결 할 수 있 는 다른 ip 설정
use mysql;
grant all privileges on *.* to "root"@"%" identified by "xxxx";
12.과거 기록 데이터 가 져 오기
cd bin
./mysql -uroot -pxxxx -h127.0.0.1 -P3306 13.업데이트 실행
cd bin
./mysql_upgrade
14.업그레이드 후 검색 어 에 오류 가 발생 할 수 있 으 므 로 아래 의 문 구 를 실행 할 수 있 습 니 다.
set @@sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
set sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
다음은 다른 네티즌 의 보충
MySQL 이 5.5 에서 5.7 로 업그레이드 되 었 습 니 다.
최근 MySQL 을 5.5 버 전에 서 5.7 로 업그레이드 하 는 작업 이 있 었 습 니 다.데이터 베 이 스 를 업그레이드 하지 않 고 모색 할 수 밖 에 없 었 습 니 다.인터넷 에 접속 하여 한 무더기 의 자 료 를 찾 았 다.눈대중 으로 보면 두 가지 업그레이드 방식 만 있다.
1.레벨 업 방식
1.Logical Upgrade(논리 업그레이드):my sqldump 를 이용 하여 SQL 파일 을 직접 내 보 낸 다음 에 새로운 MySQL 5.7 라 이브 러 리 를 만 들 고 내 보 낸 SQL 파일 을 새 라 이브 러 리 에 가 져 옵 니 다.물론 이런 방식 을 사용한다 면 my sqldump 를 사용 하지 말고 my dumper 를 사용 하 는 것 을 권장 합 니 다.우리 회사 의 데이터 양 이 많 기 때문에 이 방법 으로 처리 하지 않 았 습 니 다.
2.In-Place Upgrade:이 업그레이드 방법 은 간단 하고 빠 릅 니 다.바로 원래 MySQL 의 설치 디 렉 터 리 와/etc/my.cnf 설정 파일 을 직접 교체 하고 my sql 을 이용 하 는 것 입 니 다.upgrade 스 크 립 트 는 시스템 시트 의 업 그 레이 드 를 완성 합 니 다.
2.환경 소개
우리 의 my sql 클 러 스 터 는 Atlas 읽 기와 쓰기 분 리 를 사용 합 니 다.my sql-proxy 아래 4 대의 데이터베이스 서버 가 있 습 니 다.
master: 172.16.100.1
slave1:172.16.100.2
slave2:172.16.100.3
slave3:172.16.100.4
현재 데이터베이스 버 전:5.5.21
프로필:/etc/my.cnf
데이터 디 렉 터 리:/data/mysql
운영 체제 버 전:CentOS 6.9
3.아이디어 업그레이드
온라인 업무 가 중단 되 지 않 기 때문에 그 중 한 대의 slave 를 클 러 스 터 에서 내 쫓 고 my sql 5.7 로 업그레이드 한 다음 에 my sql 5.7 이 장 치 를 클 러 스 터 에 가입 시 키 고 데이터 가 동기 화 된 후에 메 인 전환 을 한 다음 에 다른 slave 노드 를 업그레이드 하기 로 결정 했다.
4.실제 연습
4.1.my sql-proxy 에 로그 인하 여 라 이브 러 리 에서 한 대 를 떼 어 냅 니 다.
mysql -uuser -ppwd -h127.0.0.1 -P234
백 엔 드 에이전트 라 이브 러 리 보기
mysql> SELECT * FROM backends;
+-------------+-------------------+-------+------+
| backend_ndx | address | state | type |
+-------------+-------------------+-------+------+
| 1 | 172.16.100.1:3306 | up | rw |
| 2 | 172.16.100.2:3306 | up | ro |
| 3 | 172.16.100.3:3306 | up | ro |
| 4 | 172.16.100.4:3306 | up | ro |
+-------------+-------------------+-------+------+ 5 rows in set (0.00 sec)서 비 스 를 172.16.100.4 클 러 스 터 에서 차 냅 니 다.
mysql> remove backend 4
4.2 mysql 설치 디 렉 터 리 교체
mysql 홈 페이지 에 mysql 5.7 버 전 다운로드 mysql-5.7.23-linux-glibc 2.12-x8664.tar.gz
압축 풀기 mysql 5.7
tar -zxf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
이전 my sql 디 렉 터 리 가 링크 방식 으로 만 들 어 졌 다 면 링크 를 취소 하고 다시 링크 를 만 들 면 됩 니 다.
cd /usr/local/
unlink mysql
ln -s mysql-5.7.23-linux-glibc2.12-x86_64 mysql
이전 my sql 디 렉 터 리 가 링크 방식 이 아니라면 이름 을 바 꾸 고 my sql 디 렉 터 리 를 하나 더 연결 하면 됩 니 다.
cd /usr/local/
mv mysql mysql5.5
ln -s mysql-5.7.23-linux-glibc2.12-x86_64 my sql(가능 한 한 이런 방식 을 사용 하 는 것 을 권장 합 니 다.업그레이드 가 편리 합 니 다)
4.3 mysql 서비스 시작
my sql 5.7 이후 데이터 베 이 스 를 초기 화 할 필요 가 없습니다.즉,my sql 을 실행 하지 않 아 도 됩 니 다.install_db 명령
/usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --basedir=/usr/local/mysql --user=mysql --skip-grant-tables --skip-networking &
ps -ef |grep mysql
오류 가 발생 하면 로그 정 보 를 봅 니 다.
4.4.시스템 표 데이터 사전 정 보 를 업그레이드 하고 명령 은 다음 과 같다.
/usr/loca/mysql/bin/mysql_upgrade
출력 결과:
"ALTER TABLE**FROCE"라 는 error 알림 이 있 을 수 있 습 니 다.이 오 류 는 my sql 이 뒤에서 자동 으로 Repair 를 복구 하 는 시간 이 좀 길 어 질 수 있 습 니 다.데이터 베 이 스 를 보 려 면 제 가 이번에 업그레이드 하 는 데 두 시간 이 넘 게 걸 렸 습 니 다.
마지막 으로 Upgrade process completed 를 성공 적 으로 출력 하면 업그레이드 에 성 공 했 음 을 나타 낸다.
4.5.레벨 업 후 mysql 다시 시작
/usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --basedir=/usr/local/mysql --user=mysql &
레벨 업 이 완료 되 었 는 지 확인 하 세 요.레벨 업 에 성공 하면 출력 은 다음 과 같 습 니 다.
This installation of MySQL is already upgraded to 5.7.23, use --force if you still need to run mysql_upgrade
4.6.마스터 설정 다시 만 들 기
마스터 설정 다시 만 들 기
mysql> change master to master master_host="172.16.100.1",master_user="***",master_passowrd="***",master_log_file=" mysql-bin.000004", master_log_pos=1083;
mysql> start slave;
mysql> show slave status\G;
yes 두 개 면 정상 인 거 예요.
4.7 읽 기와 쓰기 가 분 리 된 클 러 스 터 에 가입
mysql-proxy 장치 위로 가기
mysql -uuser -ppwd -h127.0.0.1 -P234
mysql> ADD SLAVE 172.16.100.4
mysql> select * from backends;
state 상태 가 up 이 라면 클 러 스 터 가입 에 성공 했다 는 뜻 입 니 다.
후기:
저 는 처음으로 데이터 베 이 스 를 업 그 레이 드 했 는데 전체적인 사고 가 맞 는 지 모 르 겠 습 니 다.먼저 테스트 환경 에서 테스트 를 한 다음 에 며칠 동안 문제 가 없어 서 온라인 에서 업 그 레이 드 를 했 습 니 다.참고 로 제공 하 다.
Mysql 5.5 가 5.7 로 업그레이드 되 는 과정 에서 밟 힌 구덩이 입 니 다.
이 야 기 는 이 렇 습 니 다.우리 회 사 는 오래된 my sql 버 전이 5.5 입 니 다.최근 에 프로젝트 를 업그레이드 하여 몇 개의 필드 를 추 가 했 습 니 다.spring-data-jpa 로 표 구 조 를 자동 으로 새로 고 칠 때 잘못 보 고 했 습 니 다.이 유 는 my sql 5.5 버 전이 표 안에 두 개 이상 의 current 가 지원 되 지 않 기 때 문 입 니 다.timestamp 는 default value 로 합 니 다.그래서 데이터 베 이 스 를 업그레이드 하 는 것 을 고려 해 야 합 니 다.
일단 서버 에 올 라 가서 다음 버 전 을 봤 어 요.
소스 를 다시 봤 어 요.
읊다,읊조리다
yum update my sql-server 를 시도 해 보 았 지만 별 쓸모 가 없 었 기 때문에 계속 하 세 요.
인터넷 에서 많은 것 을 보 았 는데 먼저 오래된 버 전의 데이터 베 이 스 를 마 운 트 해제 한 다음 에 새로운 버 전의 데이터 베 이 스 를 사용한다 고 합 니 다.그러면 제 안의 데 이 터 는 어떻게 합 니까?안전 을 위해 저 는 먼저 데이터 베 이 스 를 백업 하고 라 이브 러 리 하나 라 이브 러 리 의 백업 을 했 습 니 다.제 가 보기 에는 my sql 라 이브 러 리 에 도 많은 사용자 와 권한 이 있 는 것 같 습 니 다.그리고 my sql 을 백업 한 다음 에 열 었 습 니 다.
1.데이터베이스 마 운 트 해제
yum remove mysql-server
하지만 우리 쪽 은 다른 척 했 어 요.방금 yum 이 알 아 낸 몇 개 를 다 마 운 트 해제 했 어 요.
마 운 트 해제 전에 my sql 서 비 스 를 끄 세 요.그렇지 않 으 면 새 버 전 을 설치 한 후에 my sql--version 으로 5.7 my sql 로그 인 인지 5.5 인지 확인 하고 서 비 스 를 다시 시작 하 는 것 이 여러 가지 문제 입 니 다.일부 파일 이 삭제 되 지 않 아서 새로 설치 한 데이터 베 이 스 는 매우 이상 한 모습 이다.
2.새 데이터베이스 설치
yum search mysql57
먼저 어떤 버 전 을 고 를 수 있 는 지 보 세 요.이 건 그냥 할 말 이 없어 요.
yum install msyql57-server.x86_64
설치 하면 OK.뭐 가 들 어 있 는 지 보 자.
이상 하 게 도 my sql-config 의존 은 5.5 인 데 사용 해 보 니 문제 가 없 었 어 요.
3.설정
설치 후 다음 my.cnf 수정
내 서버 위 에는/etc/my.cnf 가 있 는데 다른 미 러 가 변 했 는 지 모 르 겠 어 요.
설정 할 때 나 는 갑자기 데이터 저장 공간 이 아직 있 는 것 이 라 고 생각 했다.사용 할 수 있 는 지 없 는 지 보 자.
그래서 my.cnf 에 이 줄 을 맞 추 었 습 니 다.(5.5 의 많은 설정 이 버 려 졌 습 니 다.이전 my.cnf 에 있 는 것 은 모두 삭제 해 야 합 니 다.그렇지 않 으 면 시작 할 때 오류 가 발생 할 수 있 습 니 다)
설정 후 과감하게 서 비 스 를 시작 합 니 다.
service mysqld start
역시
시작 로 그 를 보 았 습 니 다.
[ERROR] Fatal error: mysql.user table is damaged. Please run mysql_upgrade.
ERROR: Zend_Db_Adapter_Exception: SQLSTATE[HY000] [2002] No such file or directoryAdditionally, an exception has occurred while trying to report this error: Zend_ExceptionNo entry is registered for key 'translate' (Abstract.php:144)
이 글 을 찾 았 습 니 다.
구체 적 인 해결 방법 은 다음 과 같다.
a.그 서버 호스트 에 로그 인
b.Add skip-grant-tables in
/etc/my.cnffile under[mysqld]section 은 보안 모드 를 여 는 것 을 의미 합 니 다(비밀번호 같은 것 을 검증 하지 않 음)c. service mysqld start
d. mysql_upgrade
e. service mysqld restart
제 가 mysql 을 실 행 했 습 니 다.upgrade
공식 문 서 를 찾 아 보 았 는데 대체적으로 업그레이드 후에 많은 것들 이 호 환 되 지 않 고 정부 에서 이 스 크 립 트 를 제공 하여 이전의 작업 공간 을 복원 하 는 것 이다.
역시 틈새 없 이 my sql 데이터 베 이 스 를 업그레이드 하 는 사용자 들 은 모두 이전의 데이터 베이스 에 도 영향 을 받 지 않 았 습 니 다.
이로써 승급 완료
Liux my sql 5.5 에서 my sql 5.7 로 업그레이드 하 는 상세 한 절차 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 my sql 5.5 에서 5.7 로 업그레이드 하 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
my sql 5.5 설치 설정 그림 튜 토리 얼my sql 5.5 설치 설정 튜 토리 얼 노트 를 정리 하여 공유 합 니 다. 1,홈 페이지 다운로드 mysql 5.5 다운로드 주소: 2,mysql 5.5 설치 설치 하기 전에 백신 프로그램 을 닫 으 세 요. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.