MySQL Server数据库三种安装方式对比:
一、rpm方式
MySQL 5.7版本以前只安装mysql-server和mysql-client两个RPM包即可。
yum -y install mysql-server mysql-client
从MySQL 5.7版本之后mysql-community-client依赖于mysql-community-libs、mysql-community-server依赖于mysql-community-common共计需要安装4个RPM包。
yum -y install mysql-community-common mysql-community-libs mysql-community-server mysql-community-client
二、二进制通用方式
解决依赖包:libaio(从MySQL5.5版本开始对此包的依赖)安装libaio
yum的安装方式:
yum -y install libaio libaio-devel
#install library rpm的安装方式:
rpm -qa | grep -i aio (检查服务器是否安装libaio,没有安装使用如下安装方式)rpm -ivh libaio-0.3.107-10.el6.x86_64
===========================================================
MySQL 5.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/mysqld.server
MySQL 5.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/mysqld.server
===========================================================
※注意※
在SUSE上
mysql -uroot -p登录时候提示:
mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
MySQL 5.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
三、源码方式
在CentOS 6.X源码安装可能需要的依赖包:ncurses-devel,bison cmake,gcc-c++,make,zlib-devel
在CentOS 7.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/mysql
cd /home/mysql
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql/data \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/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
../mysql-5.5.36
make -j 4 && make install
3、初始化数据库
scripts/mysql_install_db --defaults-file=/etc/my.cnf --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
4、设置环境变量命令启动
echo ‘export PATH=$PATH:/usr/local/mysql/bin‘ > /etc/profile
source /etc/profile
或在profile文件末尾增加两行
[root@localhost ~]# vim /etc/profile
export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
# 使PATH搜索路径立即生效:
source /etc/profile
5、设置权限
cd /usr/local/mysql
chown -R mysql:mysql . #设置database所有者设为mysql,所属组为mysql
#设置数据路径的属主属组为mysql权限为775
chown -R mysql:mysql /data/mysql(或chown -R mysql /data/mysql && chgrp -R mysql /data/mysql)
chmod -R 755 /data/mysql (或chmod -R go-rwx /data/mysql)
6、手动启动MySQL数据库
mkdir /etc/mysql
mv /usr/local/mysql/my.cnf /etc/my.cnf
mysqld_safe --user=mysql --defaults-file=/etc/my.cnf &
7、关闭数据库
mysqladmin -uroot -p shutdown (※当socket文件在编译时指定的默认位置,即basedir路径下)
mysqladmin -uroot -p shutdown -S /data/mysql/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
CentOS 6.X系统设置系统服务启动方式:
8、将mysql服务添加至系统服务启动
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
9、系统命令方式启动
service mysqld start|stop|restart|status
CentOS 7.X系统设置系统服务启动方式:
[root@localhost ~]# cat >> /usr/lib/systemd/system/mysqld.service <<EOF
[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/mysql/support-files/mysql.server start
ExecReload=/usr/local/mysql/support-files/mysql.server restart
ExecStop=/usr/local/mysql/support-files/mysql.server stop
PIDFile=/data/mysql/mysql.pid
EOF
通过下列命令启动关闭MySQL数据库服务
systemctl start|stop|restart|status mysqld