MySQL数据库多种安装方法

首先以root身份登陆到Linux系统中,而后执行以下命令建立mysql用户帐号:node

[root@oldboy~]# useradd -s /sbin/nologin -M mysqlmysql

一、rpm方式安装MySQL

rpm包的安装方式很是简单,这里以el6平台下的mysql-5.6.34版本为例,首先,要到mysql官网上下载下来mysql安装包:linux

MySQL-server-5.6.29-1.el6.x86_64.rpmsql

MySQL-client-5.6.29-1.el6.x86_64.rpm数据库

MySQL-devel-5.6.29-1.el6.x86_64.rpmvim

MySQL-shared-compat-5.6.29-1.el6.x86_64.rpm服务器

MySQL-shared-5.6.29-1.el6.x86_64.rpmsocket

MySQL-test-5.6.29-1.el6.x86_64.rpmide

MySQL-embedded-5.6.29-1.el6.x86_64.rpm测试

通常来讲,其中的MySQL-server-5.6.29-1.el6.x86_64.rpmMySQL-client-5.6.29-1.el6.x86_64.rpm这两个软件包是必需要安装的,至于另外几个软件包,则可视实际须要进行安装,不过通常建议一块儿安装。

能够把这7个RPM包上传到服务器的目录中,而后执行以下rpm命令进行安装:

·   查看是否存在旧的 mysql 服务(mysql-libs安装更新后卸载,避免依赖报错)

rpm -qa | grep mysql-libs

·   # 若是包存在,按照下列顺序卸载

# 按照顺序卸载

rpm -e mysql-libs-5.1.73-7.el6.x86_64 --nodeps

rpm -e MySQL-shared-advanced

rpm -e MySQL-test-advanced

rpm -e MySQL-embedded-advanced

rpm -e MySQL-server-advanced

rpm -e MySQL-devel-advanced

rpm -e MySQL-client-advanced


rpm -ivh MySQL-client-5.6.29-1.el6.x86_64.rpm

rpm -ivh MySQL-devel-5.6.29-1.el6.x86_64.rpm

rpm -ivh MySQL-shared-5.6.29-1.el6.x86_64.rpm

rpm -ivh MySQL-server-5.6.29-1.el6.x86_64.rpm

rpm -ivh MySQL-embedded-5.6.29-1.el6.x86_64.rpm

rpm -ivh MySQL-test-5.6.29-1.el6.x86_64.rpm

MySQL的默认安装位置

/var/lib/mysql/               #数据库目录

/usr/share/mysql              #配置文件目录

/usr/bin                     #相关命令目录

/etc/init.d/mysql              #启动脚本


在采用rpm包安装方式时,必需要官方或第三方提供了现成的rpm软件包,不然是没法使用该方式安装的。另外,和直接采用yum的安装方式相比,rpm包的安装方式每每能够选择更新的版本,可是rpm包安装也有自身的问题,例如,没法知足定制化安装,好比,不能进行编译参数、路径等的更改。

*安装tcmalloc

# s1

wget http://10.0.42.1:4201/soft/libunwind-1.1.tar.gz

tar zxvf libunwind-1.1.tar.gz

cd libunwind-1.1

CFLAGS=-fPIC ./configure  

make CFLAGS=-fPIC  

make CFLAGS=-fPIC install

/sbin/ldconfig

cd ..

# s2

wget http://10.0.42.1:4201/soft/gperftools-2.2.1.tar.gz

tar zxvf gperftools-2.2.1.tar.gz

cd gperftools-2.2.1

./configure

make

make install  

/sbin/ldconfig

cd ..

# s3

cat /etc/ld.so.conf.d/local_lib.conf

echo "/usr/local/lib" > /etc/ld.so.conf.d/local_lib.conf

/sbin/ldconfig


建立数据库配置文件my.cnf

#修改数据库server-id,每台机器必须不一样


mv -f my.cnf /etc/

rm -f /usr/my*.cnf


* 初始化应用数据目录

mkdir -p /u02/mysql

rm -rf /u02/mysql/*

rm -rf /var/lib/mysql/*

mysql_install_db --defaults-file=/etc/my.cnf


chown -R mysql.mysql /u02/mysql

* 初始化配置

cat /root/.mysql_secret

7pkbuyfM1zYsqpDL

service mysql start


mysql -p

   GRANT ALL PRIVILEGES ON *.* TO 'ggs'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

   FLUSH PRIVILEGES;

   exit;


* 配置自动启动

chkconfig mysql on



二、采用cmake方式编译安装MySQL

考虑到MySQL5.4.xx及之后系列产品的特殊性,其编译方式和早期的第一条产品线的有所不一样,这里采用cmakegmake方式的编译安装。即./cmake;make;make install,生产场景的具体命令及参数为:

yum install ncurses-devel libaio-devel -y

rpm -qa ncurses-devel libaio-devel


yum install cmake -y

rpm -qa cmake


useradd -s /sbin/nologin -M mysql


tar zxf mysql-5.6.37.tar.gz

cd mysql-5.6.37

cmake . -DCMAKE_INSTALL_PREFIX=/u02/mysql-5.6.37 \

-DMYSQL_DATADIR=/u02/mysql-5.6.37/data \

-DMYSQL_UNIX_ADDR=/u02/mysql-5.6.37/tmp/mysql.sock \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii \

-DWITH_EXTRA_CHARSETS=all \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_FEDERATED_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \

-DWITH_ZLIB=bundled \

-DWITH_SSL=bundled \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_EMBEDDED_SERVER=1 \

-DENABLE_DOWNLOADS=1 \

-DWITH_DEBUG=0

##注意:\前面必定要有空格


make

make install

ln -s /u02/mysql-5.6.37/ /u02/mysql


建立数据库配置文件my.cnf

mv /etc/my.cnf /etc/my.cnf.bak

cp support-files/my-default.cnf /u02/mysql-5.6.34/my.cnf ##此步能够省略,my.cnf会在初始化时从新生成,,若不省略,则初始化时会生成my-new.cnf文件,my.cnf和my-new.cnf除了注释之外是一致的

chown -R mysql.mysql /u02/mysql



初始化MySQL数据库文件

/u02/mysql/scripts/mysql_install_db --basedir=/u02/mysql --datadir=/u02/mysql/data --user=mysql

#<==两个OK是初始化成功的标志。

配置并启动MySQL数据库

cp /srv/mysql-5.6.37/support-files/mysql.server /etc/init.d/mysqld

chmod 700 /etc/init.d/mysqld

2)启动MySQL数据库

mkdir /u02/mysql-5.6.37/tmp

chown -R mysql.mysql /u02/mysql*


/etc/init.d/mysqld start

chkconfig --add mysqld

chkconfig --list mysqld


将MySQL相关命令加入全局路径

ls /u02/mysql/bin/mysql

echo 'export PATH=/u02/mysql/bin:$PATH' >>/etc/profile

tail -1 /etc/profile

source /etc/profile


登陆MySQL测试

mysql

exit

mysqladmin -u root password '123456'


mysql -p123456


MySQL排错:

一、cmake编译安装时\前面漏加了空格,一直很顺利,直到mysql启动时:

[root@linux-mysql02 data]# /etc/init.d/mysqld start    

Starting MySQL.Logging to '/u02/mysql-5.6.37/data-DMYSQL_UNIX_ADDR=/u02/mysql-5.6.37/tmp/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-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1-DWITH_ZLIB=bundled-DWITH_SSL=bundled-DENABLED_LOCAL_INFILE=1-DWITH_EMBEDDED_SERVER=1-DENABLE_DOWNLOADS=1-DWITH_DEBUG=0/linux-mysql02.err'.

 ERROR! The server quit without updating PID file (/u02/mysql-5.6.37/data-DMYSQL_UNIX_ADDR=/u02/mysql-5.6.37/tmp/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-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1-DWITH_ZLIB=bundled-DWITH_SSL=bundled-DENABLED_LOCAL_INFILE=1-DWITH_EMBEDDED_SERVER=1-DENABLE_DOWNLOADS=1-DWITH_DEBUG=0/linux-mysql02.pid).

报错!!!

解决方法:

[root@linux-mysql02 mysql-5.6.37]# vim /etc/init.d/mysqld 

.... 

datadir=/u02/mysql-5.6.37/data-DMYSQL_UNIX_ADDR=/u02/mysql-5.6.37/tmp/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-DWITHOUT_EXAMPLE_STORAGE_E

NGINE=1-DWITH_ZLIB=bundled-DWITH_SSL=bundled-DENABLED_LOCAL_INFILE=1-DWITH_EMBEDDED_SERVER=1-DENABLE_DOWNLOADS=1-DWITH_DEBUG=0

把上面的内容注释掉,并在上面内容的下一行加入   

 datadir=/u02/mysql-5.6.37/data


缘由:此时mysql默认是调用编译自动生成的一些文件,/u02/mysql-5.6.37/support-files/mysql.server和/u02/mysql-5.6.37/my.cnf,因此解决方法一是修改启动文件mysql.server,如上,而是修改my.cnf,自定义一些参数。。

二、在启动mysql前没有新建cmake编译时指定的/u02/mysql-5.6.37/tmp/目录,致使mysql.sock找不到目录报错:

[root@linux-mysql01 mysql-5.6.37]# /etc/init.d/mysqld start

Starting MySQL.Logging to '/u02/mysql-5.6.37/data/linux-mysql01.err'.

170808 21:14:04 mysqld_safe Directory '/u02/mysql-5.6.37/tmp' for UNIX socket file don't exists.

 ERROR! The server quit without updating PID file (/u02/mysql-5.6.37/data/linux-mysql01.pid).

解决方法:在启动时新建/u02/mysql-5.6.37/tmp目录,并受权mysql

mkdir /u02/mysql-5.6.37/tmp

chown -R mysql.mysql /u02/mysql*


三、采用二进制方式免编译安装MySQL

   采用二进制免编译方式安装MySQL的方法和yum/rpm包安装方式相似,适合各种MySQL产品系列,不须要复杂的编译设置及编译时间等待,直接解压下载的软件包,就至关于编译方式的make install步骤完成了,而后只要进行初始化数据库的操做,便可完成并启动

一、下载:

wget -q http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.37-linux-glibc2.5-x86_64.tar.gz

二、安装依赖包

useradd -s /sbin/nologin -M mysql

id mysql

yum install ncurses-devel libaio-devel -y

三、解压

tar xf mysql-5.6.37-linux-glibc2.5-x86_64.tar.gz 
mkdir -p /u02
mv mysql-5.6.37-linux-glibc2.5-x86_64 /u02/mysql-5.6.37
useradd -s /sbin/nologin -M mysql
chown -R mysql.mysql /u02/mysql-5.6.37/
cd /u02/mysql-5.6.37/


四、初始化数据库

cp support-files/my-default.cnf /etc/my.cnf
./scripts/mysql_install_db --basedir=/u02/mysql-5.6.37/ --datadir=/u02/mysql-5.6.37/data/ --user=mysql
sed -i 's#/usr/local/mysql#/u02/mysql-5.6.37#g' /u02/mysql-5.6.37/bin/mysqld_safe

五、启动登陆

/u02/mysql-5.6.37//bin/mysqld_safe &
lsof -i :3306
PATH="/u02/mysql-5.6.37/bin/:$PATH"

六、登陆验证
 mysql

相关文章
相关标签/搜索