mysql的两种安装方式

yum安装

1.关闭文件防火墙和防火墙

sed -ri s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config  #关闭文件防火墙
systemctl stop firewalld && systemctl disable firewalld  #关闭防火墙并设置为开机自关闭

2.安装软件包

yum -y groupinstall "Development Tools"   
wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
 rpm -ivh mysql80-community-release-el7-1.noarch.rpm
2.1yum install 和yum groupinstall的区别:

# yum install :安装单个软件

yum grouplist :查看这个软件的所有软件包,每次安装前可以先查看yum grouplist有哪些软件,然后再去安装yum groupinstall

yum groupinstall :安装多个软件,安装这个软件的所有依赖的软件包,yum groupinstall安装的时候软件包名必须加双引号

3.修改安装mysql的yum源文件

vim /etc/yum.repos.d/mysql-community.repo
#把安装5.7的源打开, 关闭安装8.0的源
mysql的两种安装方式_第1张图片

4.安装mysql服务

yum -y install mysql-community-server
systemctl start mysqld && systemctl enable mysqld  #开启mysql服务并设置为开机自启动

5.查看数据库密码:

grep "password" /var/log/mysqld.log   #root@localhost: 密码

6.修改数据库密码:

mysql -uroot -p"密码"    #先登陆mysql
mysql的两种安装方式_第2张图片
alter user 'root'@'localhost' identified by "密码"; 

这个修改密码出现了报错,原因是密码设置的太简单了,不安全;

6.1mysql设置密码的要求:
  1. 大小写字母

  1. 非连续数字

  1. 特殊符号

  1. 密码长度为8

7.自动调整免密难度 [也可以不设置!]

set global validate_password_policy=0;   #设置密码的难度
set global validate_password_length=6;   #设置密码的长度
mysql的两种安装方式_第3张图片

8.刷新权限设置

这样就设置成功了

flush privileges;   #这是一个用于刷新数据库信息的命令
exit   #退出数据库

源码安装:

1.关闭文件防火墙和防火墙

sed -ri s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config  #关闭文件防火墙
systemctl stop firewalld && systemctl disable firewalld  #关闭防火墙并设置为开机自关闭

2.安装下载依赖包

yum -y update  #更新系统,不建议运行
yum -y install ncurses ncurses-devel bison libgcrypt perl make cmake

3.安装下载mysqld

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.24.tar.gz

建议直接去官网下载,再移动到虚拟机

4.添加自定义的mysqld进程的用户mysql

 groupadd mysql
 useradd -M -g mysql -s /sbin/nologin mysql

5.添加自定义mysql数据库目录及其他必要的目录

mkdir -p /usr/local/mysqld/{data,mysql,log,tmp}
chown -R mysql:mysql /usr/local/mysqld/*

6.解压文件

tar xf mysql-boost-5.7.24.tar.gz

7.执行部署操作

cd mysql-5.7.24
# 以下是一整条命令,请勿分开运行
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysqld/mysql \
-DMYSQL_DATADIR=/usr/local/mysqld/data \
-DWITH_BOOST=/root/mysql-5.7.24/boost/ \
-DDEFAULT_CHARSET=utf8    #过程偏久

企业中常见的mysql部署:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysqld/mysql \

-DMYSQL_DATADIR=/usr/local/mysqld/data \

-DDOWNLOAD_BOOST=1 \

-DWITH_BOOST=/root/mysql-5.7.24/boost \

-DSYSCONFDIR=/etc \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DWITH_FEDERATED_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DENABLED_LOCAL_INFILE=1 \

-DENABLE_DTRACE=0 \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_EMBEDDED_SERVER=1

echo $? #查看一条命令是否运行成功,成功返回0
make -j `lscpu | awk 'NR==4{ print $2 }'`
echo $?
make install

# make -j `lscpu | awk 'NR==4{ print $2 }'` //该命令的作用是启用多个线程同时编译程序,线程数等于 CPU 的核心数

// -j 参数表示并行编译,即启用多个线程同时编译,加快编译速度

//`lscpu | awk 'NR==4{ print $2 }'` 用于提取 lscpu 命令输出的第 4 行的第 2 个字段,即 CPU 的核心数

8.初始化mysql安装配置

8.1提升mysql命令为系统级别命令[配置环境]
# cat /etc/profile.d/mysql.sh
    MYSQL_HOME=/usr/local/mysqld/mysql
    PATH=$PATH:$MYSQL_HOME/bin
    export MYSQL_HOME PATH

# source /etc/profile.d/mysql.sh
8.2.拷贝默认配置文件至/etc/my.cnf

/etc/my.cnf这个文件是mysql全局配置文件

chown -R mysql.mysql /usr/local/mysqld/*  #修改权限
cd /usr/local/mysqld/mysql/mysql-test/include
cp /etc/{my.cnf,my.cnf.bak}
cp default_mysqld.cnf /etc/my.cnf
# vim /etc/my.cnf
#清空原有内容,添加以下内容
[mysqld]
basedir = /usr/local/mysqld/mysql
datadir = /usr/local/mysqld/data
tmpdir = /usr/local/mysqld/tmp
socket = /usr/local/mysqld/tmp/mysql.sock
pid_file = /usr/local/mysqld/tmp/mysqld.pid
log_error = /usr/local/mysqld/log/mysql_error.log
slow_query_log_file = /usr/local/mysqld/log/slow_warn.log

server_id = 11
user = mysql
port = 3306
bind-address = 0.0.0.0
character-set-server = utf8
default_storage_engine = InnoDB

[mysqld]

# mysql安装目录

basedir = /usr/local/mysqld/mysql

# mysql数据目录

datadir = /usr/local/mysqld/data

# MySQL 临时数据目录

tmpdir = /usr/local/mysqld/tmp

# mysql 套接字

socket = /usr/local/mysqld/tmp/mysql.sock

# pid 文件

pid_file = /usr/local/mysqld/tmp/mysqld.pid

# mysql 错误日志

log_error = /usr/local/mysqld/log/mysql_error.log

# mysql 慢查询日志

slow_query_log_file = /usr/local/mysqld/log/slow_warn.log

# mysql-server的标志id 如果有多台机器,每个都要唯一 ip最后一位

server_id = 11

user = mysql

port = 3306

bind-address = 0.0.0.0

# 字符集

character-set-server = utf8

# 存储引擎

default_storage_engine = InnoDB

8.3.执行数据库式服务初始化操作:
mysqld --defaults-file=/etc/my.cnf --initialize --user='mysql'
# 以 mysql 用户身份,使用指定的配置文件启动 MySQL 数据库服务,并初始化 MySQL 数据库

8.4.启动mysqld服务

 mysqld_safe --defaults-file=/etc/my.cnf &
  • mysqld_safe 是 MySQL 数据库的安全启动程序,用于启动 MySQL 数据库服务并提供一些安全保护措施。

  • --defaults-file=/etc/my.cnf 参数指定 MySQL 数据库的配置文件路径为 /etc/my.cnf,即使用指定的配置文件启动 MySQL 数据库服务。

  • & 符号用于将命令放入后台运行,即在命令末尾加上 & 符号可以让命令在后台运行。

  • 综上,该命令的作用是以安全启动程序的方式,使用指定的配置文件启动 MySQL 数据库服务,并将该命令放入后台运行

8.5.设置mysql.socket软链接到mysql命令指定的目录中
ln -s /usr/local/mysqld/tmp/mysql.sock /tmp/mysql.sock
8.6配置mysqld服务管理工具[使systemctl可以控制mysql启动关闭]
cd /usr/local/mysqld/mysql/support-files
cp mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on

9.查看数据库密码:

grep "password" /usr/local/mysqld/log/mysql_error.log   #root@localhost: 密码

8.7.登录数据库并进行更改密码

mysql -uroot -p"密码"    #先登陆mysql
mysql的两种安装方式_第4张图片
alter user 'root'@'localhost' identified by "密码"; 
8.7刷新权限
flush privileges;   #这是一个用于刷新数据库信息的命令
exit   #退出数据库

你可能感兴趣的:(mysql,服务器,linux)