MySQL三种安装方式(rpm、binary package、source)

MySQL server 数据库三种安装方式对比:

MySQL三种安装方式(rpm、binary package、source)_第1张图片

1、rpm方式

mysql5.7版本以前只安装mysql-server和mysql-client两个RPM包即可。
从mysql5.7版本之后mysql-community-client依赖于mysql-community-libs
mysql-community-server依赖于mysql-community-common共计需要安装4个RPM包

2、二进制通用方式

解决依赖包:libaio(从MySQL5.5版本开始对此包的依赖)安装libaio
yum的安装方式:
yum install libaio # install libraryrpm的安装方式:
rpm -qa|grep -i aio (检查服务器是否安装libaio,没有安装使用如下安装方式)rpm -ivh libaio-0.3.107-10.el6.x86_64
===========================================================
MySQL5.6版本安装二进制版本安装步骤
===========================================================
mysql二进制版本安装在/usr/local/mysql data路径默认在/var/lib/mysql,配置文件默认在/etc/my.cnf
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
tar -zxvf /path/mysql-version-OS.tar.gz
ln -s /path/mysql-version-OS.tar.gz
cd mysql
mkdir mysql-files
chmod 770 mysql-files
chown -R mysql .
chgrp -R mysql .
scripts/mysql_install_db --user=mysql
chown -R root .
chown -R mysql data #(chown -R mysql /var/lib/mysql)
bin/mysqld_safe --user=mysql &
cp support-files/mysql.server /etc/init.d/mysql.server
MySQL5.7版本安装二进制版本安装步骤
===========================================================
mysql二进制版本安装在/usr/local/mysql data路径默认在/var/lib/mysql,配置文件默认在/etc/my.cnf
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
tar -zxvf /path/mysql-version-OS.tar.gz
ln -s /path/mysql-version-OS.tar.gz
cd mysql
mkdir mysql-files
chmod 770 mysql-files
chown -R mysql .
chgrp -R mysql .
bin/mysql_install_db --user=mysql #Before MySQL5.7.6
bin/mysqld --initialize --user=mysql #MySQL 5.7.6 and up
#bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
bin/mysql_ssl_rsa_setup #MySQL5.7.6 and up
chown -R root .
chown -R mysql data mysql-files #(chown -R mysql /var/lib/mysql)
bin/mysqld_safe --user=mysql &
cp support-files/mysql.server /etc/init.d/mysql.server
===========================================================※注意※

在SUSE上,mysql -uroot -p登录时候提示:
mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
mysql5.7官方文档提示:https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html

Note

SLES 11: as of MySQL 5.7.19, the Linux Generic tarball package format is EL6 instead of EL5. As a side effect, the MySQL client bin/mysql needs libtinfo.so.5.

A workaround is to create a symlink, such as ln -s libncurses.so.5.6 /lib64/libtinfo.so.5 on 64-bit systems or ln -s libncurses.so.5.6 /lib/libtinfo.so.5 on 32-bit systems.

※注意:SLES 11:从MySQL 5.7.19开始,Linux通用tar包的格式是EL6而不是EL5。以致于MySQL客户端bin/mysql需要libtinfo.so.5。
解决方法是创建软链接,例如:
64位系统上的: 
ln -s libncurses.so.5.6 /lib64/libtinfo.so.5
32位系统上的: ln -s libncurses.so.5.6 /lib/libtinfo.so.5

3、源码方式

在Centos6.X源码安装可能需要的依赖包:ncurses-devel,bison cmake,gcc-c++,make,zlib-devel 

在Centos7.X系统上可能需要的依赖包:autoconf包,否则初始化库的时候可能会失败提示错误:

     FATAL ERROR: please install the following Perl modules before executing


使用Oracle官方编译使用参数(mysql_release)为MySQL二进制包的模式编译,编译需要libaio-devel

如:cmake -DBUILD_CONFIG=mysql_release  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql ../mysql-VERSI

1、创建用户和库目录

useradd mysql -s /sbin/nologin -M

2、编译安装:避免破坏mysql源码,可以新建一个其他路径,

mkdir /home/mysqlbuild

cd /home/mysqlbuild

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql56 \
-DMYSQL_DATADIR=/data/3306 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql56/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_FAST_MUTEXES=1 \
-DWITH_ZLIB=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_READLINE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DWITH_DEBUG=0 ../mysql5.5.36

make -j && make install

3、--初始化数据库
scripts/mysql_install_db --basedir=/usr/local/mysql56 --datadir=/data/3306 --defaults-file=/usr/local/mysql56/etc/my.cnf --user=mysql

4、--设置环境变量命令启动

echo 'export PATH=$PATH:/usr/local/mysql56/bin' > /etc/profile.d/mysql.sh

source /etc/profile.d/mysql.sh

或者在profile文件末尾增加两行 vi /etc/profile 
PATH=/usr/local/mysql56/bin:/usr/local/mysql56/lib:$PATH 
export PATH 
# 使PATH搜索路径立即生效:
source /etc/profile

5、--设置权限

cd /usr/local/mysql56
chown -R mysql:mysql . #设置database所有者设为mysql,所属组为mysql

#设置数据路径的属主属组为mysql 权限为775
chown -R mysql:mysql /data/3306(或chown -R mysql /data/3306,chgrp -R mysql /data/3306)

chmod -R 700 /data/3306/ (或chmod -R go-rwx /data/3306/ )

6、--手动启动MySQL数据库

mkdir /usr/local/mysql56/etc/

mv /usr/local/mysql56/my.cnf /usr/local/mysql56/etc/my.cnf
mysqld_safe --defaults-file=/usr/local/mysql56/etc/my.cnf --user=mysql &

7、--关闭数据库

mysqladmin -uroot -p shutdown  (※当socket文件在编译时指定的默认位置,即basedir路径下)

mysqladmin -uroot -p shutdown -S /data/3306/mysql.sock(当socket文件变换位置,需指定socket位置关闭)

当socket删除或者不见了,只能通过建立的TCP/IP连接来代替,可以在连接至本地服务器时可以通过利用--protocol=tcp选项或者把主句值指定为127.0.0.1,而非localhost(因为在Unix里与localhost连接默认都是通过一个Unix域套接字文件实现的,即XXX.sock,如果套接字文件被删除,则无法利用它来建立连接,而127.0.0.1是一个IP地址,它指向的是本地主机的回环接口,因此它会显示地强制使用TCP/IP连接,而不会使用套接字连接)

mysqladmin -uroot -p shutdown--protocol=tcp

mysqladmin -uroot -p shutdown -h127.0.0.1

Centos6.X系统设置系统服务启动方式:

8、--将mysql服务添加至系统服务启动

cp support-files/mysql.server  /etc/init.d/mysql

chmod 755 /etc/init.d/mysql

9、--系统命令方式启动

service mysql start|stop|restart|status

Centos7.X系统设置系统服务启动方式:

vim /usr/lib/systemd/system/mysql.service

[Unit]
Description=MySQL Server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql
Type=forking
PrivateTmp=true
ExecStart=/usr/local/mysql56/support-files/mysql.server start
ExecReload=/usr/local/mysql56/support-files/mysql.server restart
ExecStop=/usr/local/mysql56/support-files/mysql.server stop
PIDFile=/data/3306/xiaofeng.pid

就可以通过下列命令启动关闭mysql数据库服务
systemctl start|stop|restart|status mysql


你可能感兴趣的:(MySQL)