MySQL5.7.40安装部署

1、MySQL下载地址

https://downloads.mysql.com/archives/community/

2、解压tar包得到对应的tar.gz压缩包

tar -xvf mysql-5.7.40-el7-x86_64.tar.gz
将mysql-5.7.40-el7-x86_64移动到/usr/local下
mv mysql-5.7.40-el7-x86_64 /usr/local
mv /usr/local/mysql-5.7.40-el7-x86_64/ /usr/local/mysql
新建data目录
mkdir /mysql_data
添加mysql用户组
groupadd mysql
添加mysql用户
useradd mysql -g mysql
将mysql的所有者改为mysql
chown -R mysql.mysql /usr/local/mysql
chown -R mysql.mysql /mysql_data
安装(切换到mysql用户执行)
/usr/local/mysql/bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/mysql_data

 出现报错可以重置:

先删除之前的数据
rm -rf /mysql_data/*
/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/mysql_data --initialize

3、编辑/etc/my.cnf文件,内容如下所示

[mysqld]
datadir=/mysql_data
basedir=/usr/local/mysql
socket=/tmp/mysql.sock
user=mysql
port=8921
character-set-server=utf8
collation-server = utf8_general_ci
general_log = 1
slow_query_log = 1
log_slave_updates = 1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

4、登录数据库修改密码和远程登录权限

将mysql加入服务

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

设置开机自启

chkconfig mysql on

启动MySQL
service mysql start

然后连接MySQL.
/usr/local/mysql/bin/mysql -hlocalhost -u root -p  输入上面的随机密码,连接成功。

重置密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
刷新
flush privileges;,

再次重连,密码输入修改后的密码,连接成功。

设置远程连接
use mysql;
update user set host='%' where user ='root';

刷新
flush privileges;


建立软链接
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

5、验证 

史上最全面的mysql数据库一键安装脚本,适合任何版本 

#!/bin/bash

echo -e "\e[31m****一键安装mysql任何版本数据库***\e[0m"

echo -e "输入安装版本,如\e[31m8.0.27\e[0m"

read version

find / -name mysql | xargs rm -rf

port=$(netstat -antup|grep mysql|wc -l)

if [ $port != 0 ]

then echo "mysql进程存在,请先杀掉进程"

ps -ef |grep mysqld

exit 1

fi

echo "-------------------创建所需目录及用户并上传安装包-------------------"

mkdir -p  /data/mysql

groupadd mysql

useradd -r -g mysql mysql

cd /opt/

tar -xvf mysql-$version-linux-glibc2.12-x86_64.tar.xz

mv mysql-$version-linux-glibc2.12-x86_64/  /usr/local/

cd /usr/local/

mv mysql-$version-linux-glibc2.12-x86_64/ mysql

chown -R mysql.mysql /usr/local/mysql/

echo "----------------卸载原有的mysql组件-------------------"

yum list installed | grep mariadb

yum -y remove mariadb*

yum remove mariadb*

chown mysql:mysql -R /data/mysql

touch /etc/my.cnf

chmod 644 /etc/my.cnf

MYSQL_ROOT_PASSWORD=123456

cat <<EOF >/etc/my.cnf

[mysqld]

user=mysql

basedir=/usr/local/mysql

datadir=/data/mysql

socket=/tmp/mysql.sock

log-error=/data/mysql/mysql.err

pid-file=/data/mysql/mysql.pid

server_id=1

port=3306

character-set-server=utf8

innodb_rollback_on_timeout = ON

character-set-server = utf8

collation-server=utf8_general_ci

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

lower_case_table_names=1

max_connections=10000

sync_binlog=1

binlog_format=row

[mysql]

socket=/tmp/mysql.sock

default-character-set=utf8

[client]

EOF

echo "----------------启动MYSQL service-------------------"

echo "----------------初始化数据库-------------------"

cd /usr/local/mysql/bin

./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize

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

path=$(grep 'MYSQL_HOME' /etc/profile|wc -l)

if [ $path !=  0 ]

  then

    echo -e "\e[31m MYSQL_HOME路径存在\e[0m"

  else

    echo "export MYSQL_HOME=/usr/local/mysql/bin" >> /etc/profile

    echo "export PATH=\$PATH:\$MYSQL_HOME"        >> /etc/profile

    source /etc/profile

fi

service mysql start

echo 'export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib'>>/etc/profile

source /etc/profile

cat /data/mysql/mysql.err|grep password

chkconfig --add mysql

chkconfig mysql on

chkconfig --list mysql

MYSQL_OLDPASSWORD=`awk '/A temporary password/{print $NF}' /data/mysql/mysql.err`

mysqladmin  -uroot -p${MYSQL_OLDPASSWORD} password ${MYSQL_ROOT_PASSWORD}

mysql -uroot -p123456 -e "update mysql.user set host ='%' where user ='root';"

mysql -uroot -p123456 -e "flush privileges;"

mysql -uroot -p123456

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值