首先以root身份登录到Linux系统中,然后执行如下命令创建mysql用户账号:
[root@oldboy~]# useradd -s /sbin/nologin -M mysql
1、rpm方式安装MySQL
rpm包的安装方式非常简单,这里以el6平台下的mysql-5.6.34版本为例,首先,要到mysql官网上下载下来mysql安装包:
MySQL-server-5.6.29-1.el6.x86_64.rpm
MySQL-client-5.6.29-1.el6.x86_64.rpm
MySQL-devel-5.6.29-1.el6.x86_64.rpm
MySQL-shared-compat-5.6.29-1.el6.x86_64.rpm
MySQL-shared-5.6.29-1.el6.x86_64.rpm
MySQL-test-5.6.29-1.el6.x86_64.rpm
MySQL-embedded-5.6.29-1.el6.x86_64.rpm
一般来说,其中的MySQL-server-5.6.29-1.el6.x86_64.rpm和MySQL-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
2、采用cmake方式编译安装MySQL
考虑到MySQL5.4.xx及以后系列产品的特殊性,其编译方式和早期的第一条产品线的有所不同,这里采用cmake或gmake方式的编译安装。即./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排错:
1、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,自定义一些参数。。
2、在启动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*
3、采用二进制方式免编译安装MySQL
采用二进制免编译方式安装MySQL的方法和yum/rpm包安装方式类似,适合各类MySQL产品系列,不需要复杂的编译设置及编译时间等待,直接解压下载的软件包,就相当于编译方式的make install步骤完成了,然后只要进行初始化数据库的操作,即可完成并启动
1、下载:
wget -q http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.37-linux-glibc2.5-x86_64.tar.gz
2、安装依赖包
useradd -s /sbin/nologin -M mysql
id mysql
yum install ncurses-devel libaio-devel -y
3、解压
4、初始化数据库
5、启动登录
6、登录验证
mysql