一 mysql下载
需要注册,可以通过组合url越过注册下载需要的包。
下载地址:
https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
或 wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.45-linux-glibc2.12-x86_64.tar.gz
二, 安装
卸载系统自带的mariadb
# rpm -qa | grep mariadb
mariadb-libs-5.5.56-2.el7.x86_64
# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
删除/etc目录下的my.cnf
rm /etc/my.cnf
创建用户
groupadd mysql
useradd -g mysql mysql
解压指定的目录
tar xvf mysql-5.6.45-linux-glibc2.12-x86_64.tar.gz -C /usr/local/src
ln -sv /usr/local/src/mysql-5.6.45-linux-glibc2.12-x86_64 /usr/local/mysql
copy一份/usr/local/mysql/support-files/下的my-default.cnf文件到/etc下
cp support-files/my-default.cnf /etc/my.cnf
配置/etc目录下的my.cnf文件
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
skip-name-resolve
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_name=1
max_allowed_packet=16M
进入安装mysql软件目录,并执行以下命令
[root@localhost mysql]# cd /usr/local/mysql/
[root@localhost mysql]# chown -R mysql:mysql ./
[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
-bash: ./scripts/mysql_install_db: /usr/bin/perl: 坏的解释器: 没有那个文件或目录
[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:
Data::Dumper
报错说安装
yum install autoconf 未测试
安装必备软件
yum -y install perl perl-devel
yum install -y perl-Data-Dumper
安装完成后,修改当前data目录的拥有者为mysql用户
data目录为默认的数据目录,在解压后的目录下。即/usr/local/mysql
chown -R mysql:mysql data
配置权限/my.cnf
chmod 644 /etc/my.cnf
开机自启动脚本
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
增加脚本可执行权限
chmod +x /etc/rc.d/init.d/mysqld
加入到系统服务
chkconfig --add mysqld
检查服务配置是否生效
chkconfig --list mysqld
```
起停命令
命令为:service mysqld start和service mysqld stop
启动服务
service mysqld start
写入环境变量
```
vim /etc/profile
export MYSQL_HOME=/usr/local/mysql
export PATH=$MYSQL_HOME/bin:$PATH
source /etc/profile
启动
[root@localhost mysql]# chkconfig --add mysql
[root@localhost mysql]# chkconfig mysql on
[root@localhost mysql]# service mysql start
Starting MySQL.. SUCCESS!
设置登陆密码
/usr/local/mysql/bin/mysqladmin -u root password ‘new-password‘
登陆:
mysql -uroot -p
修改权限使得root可远程访问
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
或
update user set password=password('root') where user='root' and host='localhost';
flush privileges;
远程访问注意防火墙和selinux
注意:
如果需要修改数据存储目录,有2种方式
一是做软连接至/usr/local/mysql/data
二是修改启动文件
vim /etc/init.d/mysql #若mysql的安装目录是/usr/local/mysql,则可省略此步
修改文件中的两个变更值
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
注意权限问题
添加用户后可使用mysql用户操作
su - mysql
#!/bin/bash
#
#********************************************************************
#Author: yon@
#Date: 2019-09-13
#FileName: mysql-5.6.45-linux-glibc2.12-x86_64-install.sh
#Description: install mysql-5.6.45-linux-glibc2.12-x86_6
#Copyright (C): 2019 All rights reserved
#********************************************************************
## download url
## https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
## https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.45-linux-glibc2.12-x86_64.tar.gz
set -e
set -u
mysql=mysql-5.6.45-linux-glibc2.12-x86_64
#1,clear the mariadb
rpm -qa | grep mariadb && rpm -e --nodeps `rpm -qa | grep mariadb`
#2,remove /etc/my.cnf if exists
rm /etc/my.cnf -rf
rm /etc/my.cnf.d -rf
#3,create user
groupadd mysql
useradd -M -g mysql mysql
#4,
wget -O /usr/local/src/${mysql}.tar.gz https://dev.mysql.com/get/Downloads/MySQL-5.6/${mysql}.tar.gz
tar xvf /usr/local/src/${mysql}.tar.gz -C /usr/local/src
ln -sv /usr/local/src/${mysql} /usr/local/mysql
#5,
cat > /etc/my.cnf <<EOF
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
skip-name-resolve
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_name=1
max_allowed_packet=16M
EOF
chmod 644 /etc/my.cnf
#6,
yum -y install perl perl-devel
yum install -y perl-Data-Dumper
yum install -y autoconf libaio
echo "start initialize db...."
sleep 5
cd /usr/local/mysql/ && chown -R mysql:mysql ./
./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
#7,
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
#8,
echo "export MYSQL_HOME=/usr/local/mysql" >>/etc/profile
echo 'export PATH=$MYSQL_HOME/bin:$PATH' >>/etc/profile
source /etc/profile
#9,
service mysql start
#10, setup password for root
echo "pls run this to set password for root to remote login"
echo ""
echo ""
echo "/usr/local/mysql/bin/mysqladmin -u root password 'new-password'"
echo " mysql -uroot -p"
echo "mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;"
echo "mysql> FLUSH PRIVILEGES;"
echo ""
echo ""
echo ""
echo "systemctl stop/disable firewalld "
echo "setenforce 0 "
mysql-5.6.45-linux-glibc2.12-x86_64.tar.gz下载安装
原文:https://www.cnblogs.com/g2thend/p/11517102.html