'DB/Mysql'에 해당되는 글 23건

  1. 2021.11.04 CentOS 7, MySQL 4.0.30 소스 설치
  2. 2021.09.30 MySQL 3.23 소스설치 (CentOS 6)
  3. 2020.12.02 my.cnf 추천
  4. 2020.11.04 mysql 리플리케이션 무중단

- 기본 준비

yum -y install wget gcc* make cmake libtool* openssl* pcre* ncurses ncurses-devel curses-devel libxml* bzip2 bzip2-libs bzip2-devel curl-devel curl expat-devel expat gdbm gdbm-devel libjpeg* libpng* libtiff* freetype* freetype imap imap-devel krb5-devel libmcrypt* libmhash-devel mhash* flex icu libicu libicu-devel libc libcu-devel libc-client-devel zlib-devel zlib libtiff-devel libtiff gd* pcre-devel pcre gdbm* pam-devel patch libcurl libcurl-devel libvpx libvpx-devel libXpm libXpm-devel t1lib t1lib-devel gmp-devel openldap-devel readline-devel libedit-devel libtidy libtidy-devel libxslt libxslt-devel db4-devel ibc-client uw-imap-devel uw-imap uw-imap-static libc-client-2007f wget vim

: 필요없는 라이브러리도 있으니 용량 부족시 확인 후 설치



- Group & User 생성

groupadd -g 400 mysql 

useradd -u400 -g400 -d /usr/local/mysql -s /bin/false mysql



- MySQL 4.0.30 준비

파일 다운로드 후 압축 해제

cd /usr/local/src/APM_Setup

wget https://dafaru.com/mydata/linux/lmp-4/mysql-4.0.30.tar.gz
wget https://github.com/ingktds/mysql-4.0.30/blob/master/mysql-4.0.30.tar.gz

tar zxvf mysql-4.0.30.tar.gz

cd mysql-4.0.30



- 컴파일

./configure --prefix=/usr/local/mysql --sysconfdir=/etc --localstatedir=/usr/local/mysql/data --with-mysqld-user=mysql --with-openssl



./configure --prefix=/usr/local/mysql --with-mysqld-user="mysql" --localstatedir=/usr/local/mysql/data --sysconfdir=/etc --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static --without-debug --enable-shared --enable-assembler --with-readline --enable-thread-safe-client --with-plugins=innobase --with-extra-charsets=all --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock



- make && make install

make -j 4 && make install

: -j 옵션은 top -> 1로 확인 후 서버에 맞춰 변경하여 사용



- 설정, 실행파일 생성

cp -arp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf

cp -arp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld



- 초기 DB 생성

/usr/local/mysql/bin/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql



- MySQL sock파일 디렉토리생성

mkdir /usr/local/mysql/tmp/



- data 디렉터리 소유권 변경

chown -R mysql.mysql /usr/local/mysql/data

chown -R mysql:mysql /usr/local/mysql

chmod 711 /usr/local/mysql

chmod 700 -R  /usr/local/mysql/data

chmod 751 /usr/local/mysql/bin

chmod 755 /usr/local/mysql/bin/mysql

chmod 750 /usr/local/mysql/bin/*

chmod 755 /usr/local/mysql/bin/mysqldump



- 환경변수 추가

vi /etc/profile

: 문서 맨 하단에 아래 내용 추가

===

export MySQL_HOME=/usr/local/mysql
export PATH="$PATH:/usr/local/mysql/bin"

===

source /etc/profile



- root 비밀번호 설정

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: root 패스워드 입력
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
 ... 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
 - 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!

Cleaning up...



All done!  If you've completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!

===



위에꺼 안될때

/usr/local/mysql/bin/mysqladmin -u root -p password '새로운비밀번호'







- gcc 에러 발생 시 

mysql.cc: In function 'void print_table_data(MYSQL_RES*)':

mysql.cc:1650: error: expected primary-expression before '?' token

mysql.cc:1650: error: expected ':' before ')' token

mysql.cc:1650: error: expected primary-expression before ')' token

mysql.cc:1652: error: expected primary-expression before '?' token

mysql.cc:1652: error: expected ':' before ')' token

mysql.cc:1652: error: expected primary-expression before ')' token

mysql.cc:1666: error: expected primary-expression before '?' token

mysql.cc:1666: error: expected ':' before ')' token

mysql.cc:1666: error: expected primary-expression before ')' token

make[1]: *** [mysql.o] Error 1

make[1]: Leaving directory `/usr/local/src/APM_Setup/mysql-4.0.27/client'

make: *** [install-recursive] Error 1



: 위 에러는 gcc 버전이 높아 발생하는 에러로 아래와 같이 해결함

yum install compat-*

cd /usr/bin

mv gcc gcc-backup

mv g++ g++-backup

ln -s gcc34 gcc

ln -s g++34 g++



- LinuxThreads 에러 발생 시 

checking “LinuxThreads“… “Not found“
configure: error: This is a linux system and Linuxthreads was not
found. On linux Linuxthreads should be used. Please install Linuxthreads
(or a new glibc) and try again. See the Installation chapter in the
Reference Manual for more information.



: 위 에러는 glibc를 찾지 못하여 발생하는 에러로 아래와 같이 해결함



vi /usr/include/pthread.h

: 문서 맨 아래에 /* Linuxthreads */를 추가

===

__END_DECLS

#endif /* pthread.h */
/* Linuxthreads */

===



※ 재시작 및 접속 확인 시 완료 ※

'DB > Mysql' 카테고리의 다른 글

MySQL 3.23 소스설치 (CentOS 6)  (0) 2021.09.30
my.cnf 추천  (0) 2020.12.02
mysql 리플리케이션 무중단  (0) 2020.11.04
mysql8 마이그레이션  (0) 2020.10.30
APM 설치(2/4) - MySQL(5.6.29)  (0) 2020.10.30
Posted by returnrisk
,

yum -y install wget gcc* make cmake libtool* openssl* pcre* ncurses ncurses-devel curses-devel libxml* bzip2 bzip2-libs bzip2-devel curl-devel curl expat-devel expat gdbm gdbm-devel libjpeg* libpng* libtiff* freetype* freetype imap imap-devel krb5-devel libmcrypt* libmhash-devel mhash* flex icu libicu libicu-devel libc libcu-devel libc-client-devel zlib-devel zlib libtiff-devel libtiff gd* pcre-devel pcre gdbm* pam-devel patch libcurl libcurl-devel libvpx libvpx-devel libXpm libXpm-devel t1lib t1lib-devel gmp-devel openldap-devel readline-devel libedit-devel libtidy libtidy-devel libxslt libxslt-devel db4-devel ibc-client uw-imap-devel uw-imap uw-imap-static libc-client-2007f wget vim

: 필요없는 라이브러리도 있으니 용량 부족시 확인 후 설치

 

mysql-3.23.58은 기본이 CentOS 5에서 지원하기 때문에 CentOS 5 에서는 gcc가 기본이 3.4 이다.

CentOS 6에서는 gcc 기본이 4.4 이므로 CentOS5 와 호환성 gcc를 제공한다. gcc3.4로 바꾸어야  CentOS 6 에서 mysql-3.23.58 을 설치 할 수 있다. (즉, CentOS7 에서는 gcc34는 불가입니다. -> CentOS 7 gcc4.4 까지만 지원합니다.)

yum install compat-* --skip-broken

cd /usr/bin

mv gcc gcc-backup

mv g++ g++-backup

ln -s gcc34 gcc

ln -s g++34 g++

 

 

- Group & User 생성

groupadd -g 400 mysql 

useradd -u400 -g400 -d /usr/local/mysql -s /bin/false mysql

 

 

파일 다운로드 후 압축 해제

cd /usr/local/src/APM_Setup

wget http://ftp.linux.co.kr/pub/mysql/mysql-3.23.58.tar.gz

tar zxvf mysql-3.23.58.tar.gz

cd mysql-3.23.58

 


########mysql configure 과정에서 pthread.h 파일을 찾아 위 내용이 있는지 확인하는 것으로 glibc에서 없는 경우 에러 메세지가 난다고 합니다.

echo "/* Linuxthreads */" >> /usr/include/pthread.h

 

- 컴파일

./configure \
--prefix=/usr/local/mysql \
--localstatedir=/usr/local/mysql/data \
--with-mysqld-user=mysql \
--with-extra-charsets=all \
--enable-thread-safe-client \
--sysconfdir=/etc \
--with-mysqld-ldflags=-all-static \
--with-client-ldflags=-all-static \
--without-debug \
--enable-shared \
--enable-assembler \
--with-readline \
--with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock \
--with-innodb \
--with-pthread \
--with-named-thread-lib=-lpthread \
--with-charset=euc_kr

 

- make && make install

make -j 4 && make install

: -j 옵션은 top -> 1로 확인 후 서버에 맞춰 변경하여 사용

 

- 초기 DB 생성

/usr/local/mysql/bin/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql --force

 

- MySQL sock파일 디렉토리생성

mkdir /usr/local/mysql/tmp/

 

- data 디렉터리 소유권 변경

chown -R mysql.mysql /usr/local/mysql/data

chown -R mysql:mysql /usr/local/mysql

chmod 711 /usr/local/mysql

chmod 700 -R  /usr/local/mysql/data

chmod 751 /usr/local/mysql/bin

chmod 755 /usr/local/mysql/bin/mysql

chmod 750 /usr/local/mysql/bin/*

chmod 755 /usr/local/mysql/bin/mysqldump

 

- 환경변수 설정

vi /etc/profile

==============================================

APACHE_HOME=/usr/local/apache
MySQL_HOME=/usr/local/mysql
PHP_HOME=/usr/local/php

PATH=$PATH:$HOME/bin:$APACHE_HOME/bin:$MySQL_HOME/bin:$PHP_HOME/bin:
==============================================
export APACHE_HOME MySQL_HOME PHP_HOME PATH

 

source /etc/profile

 

mysql_secure_installation

 

Set root password? [Y/n] Y
New password: root 패스워드 입력
Re-enter new password: root 패스워드 입력
Password updated successfully!
Reloading privilege tables..
 ... Success!

 

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
 ... 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
 - 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

 

위에 꺼 안될때 

/usr/local/mysql/bin/mysqladmin -u root -p password '새로운비밀번호'

 

 

- gcc 에러 발생 시 

mysql.cc: In function 'void print_table_data(MYSQL_RES*)':

mysql.cc:1650: error: expected primary-expression before '?' token

mysql.cc:1650: error: expected ':' before ')' token

mysql.cc:1650: error: expected primary-expression before ')' token

mysql.cc:1652: error: expected primary-expression before '?' token

mysql.cc:1652: error: expected ':' before ')' token

mysql.cc:1652: error: expected primary-expression before ')' token

mysql.cc:1666: error: expected primary-expression before '?' token

mysql.cc:1666: error: expected ':' before ')' token

mysql.cc:1666: error: expected primary-expression before ')' token

make[1]: *** [mysql.o] Error 1

make[1]: Leaving directory `/usr/local/src/APM_Setup/mysql-4.0.27/client'

make: *** [install-recursive] Error 1

 

: 위 에러는 gcc 버전이 높아 발생하는 에러로 아래와 같이 해결함

yum install compat-*

cd /usr/bin

mv gcc gcc-backup

mv g++ g++-backup

ln -s gcc34 gcc

ln -s g++34 g++

 

- LinuxThreads 에러 발생 시 

checking “LinuxThreads“… “Not found“
configure: error: This is a linux system and Linuxthreads was not
found. On linux Linuxthreads should be used. Please install Linuxthreads
(or a new glibc) and try again. See the Installation chapter in the
Reference Manual for more information.

 

: 위 에러는 glibc를 찾지 못하여 발생하는 에러로 아래와 같이 해결함

 

vi /usr/include/pthread.h

: 문서 맨 아래에 /* Linuxthreads */를 추가

===

__END_DECLS

#endif /* pthread.h */
/* Linuxthreads */

===

'DB > Mysql' 카테고리의 다른 글

CentOS 7, MySQL 4.0.30 소스 설치  (0) 2021.11.04
my.cnf 추천  (0) 2020.12.02
mysql 리플리케이션 무중단  (0) 2020.11.04
mysql8 마이그레이션  (0) 2020.10.30
APM 설치(2/4) - MySQL(5.6.29)  (0) 2020.10.30
Posted by returnrisk
,

my.cnf 추천

2020. 12. 2. 14:39

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.