Mysql安装
下载:
https://dev.mysql.com/downloads/
http://mirrors.sohu.com/
https://mirrors.tuna.tsinghua.edu.cn/
一、安装环境
操作系统CentOS7.6
关闭SeLinux和iptables防火墙
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
systemctl disable firewalld
systemctl stop firewalld
二、更新网络YUM源
将下面的软件下载到 /etc/yum.repos.d/ 的目录下
官方基础:
curl -s -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
epel拓展:
curl -s -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
注:下载完成后,需要使用命令清楚掉原有的yum缓存,使用新的配置建立缓存
yum clean all #清除原有缓存列表
yum makecache #建立新的缓存列表
yum -y update #将所有能更新的软件更新,这样安装之后就有依赖所有新的软件
三. 安装方式:
//注意:
使用mysql Yum仓库时,默认选择最新的mysql版本,如果需要使用低版本请按如下操作。
1.安装mysql仓库源
rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
2.选择并启用适合当前平台的发行包
//列出所有mysql发行版本仓库
yum repolist all | grep mysql
3.禁用8.0发行仓库,启用5.7发行仓库
yum install yum-utils
yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community
注:安装yum-config-manager
yum provides yum-config-manager
//注意:
可以手动编辑/etc/yum.repos.d/mysql-community.repo 文件配置仓库
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch
enabled=1 //enabled=1 启用
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
4.过以下命令安装mysql,并启动mysql
yum install -y mysql-community-server
systemctl start mysqld
systemctl enable mysqld
注:Mysql 服务器初始化(仅适用于mysql5.7)在服务器初始启动时,如果服务器的数据目录为空,则会发生以下情况
服务器已初始化
在数据目录中生成ssl证书和密钥文件
validate_password插件安装并启用
超级用户账户'root'@'localhost'已创建
超级用户的密码被设置并存储在错误日志的文件中,要显示它,请使用以下命令;
grep "password" /var/log/mysqld.log
2020-11-11T02:33:50.996492Z 1 [Note] A temporary password is generated for root@localhost: D)<MPoZus7/a
5.MySQL5.7初始化后5种密码重置方法
1.从日志中获取随机生成的密码
grep "password" /var/log/mysqld.log
登陆后并不能做任何操作
方法1:使用alter修改
alter user root@'localhost' identified by "SH123.com";
flush privileges;
方法2:使用set password
set password for 'root'@'locathost' = password('SH123.com');
flush privileges;
方法3:使用update
update mysql.user set authentication_string = password('SH123.com');
flush privileges;
方法4:使用mysql_secure_installation
方法5:跳过授权列表skip-grant-tables
vim /etc/my.cnf
[mysqld]
skip-grant-tables=1
重启mysql,再修改
systemctl restart mysqld
mysql
Summary
a. mysql5.7安装好后会在/var/log/mysql.log中产随机密码,而且不修改密码不能执行任何操作
b. mysql5.7的user表中的password字串修改为authentication_string
c. 修改密码的Policy转变是1(中级),因此设置时要符合规则
d. 跳过授权列时,同时也不受密码policy影响
e.mysql 的validate_password插件默认安装。将要求密码至少包含大写、小写、特殊字符。
注意:yum 安装 默认数据安装目录(一般建议修改)
ll /var/lib/mysql
cat /etc/my.cnf
2. 二进制安装
2.1.安装
[root@mysql ~]# mkdir /soft/src -p
[root@mysql ~]# cd /soft/src/
[root@mysql ~]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz
[root@mysql src]# tar xf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz
[root@mysql src]# cp -r mysql-5.7.32-linux-glibc2.12-x86_64 /soft/mysql57
[root@mysql soft]# ln -s /soft/mysql57/ /soft/mysql
[root@mysql soft]# groupadd mysql
[root@mysql soft]# useradd -r -g mysql -s /sbin/nologin mysql
注:
[root@mysql src]# md5sum mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz
63f400a1c3727996176451c7f7457992 (和官网MD5 比较)
2.2.进行mysql初始化
//创建初始化目录以及数据库数据目录
[root@mysql soft]# mkdir /soft/mysql/{mysql-file,data}
[root@mysql soft]# chown -R mysql.mysql /soft/mysql/
//验证:
[root@mysql soft]# ll -d /soft/mysql/
drwxr-xr-x. 11 mysql mysql 159 Nov 12 09:08 /soft/mysql/
[root@mysql soft]# ll /soft/mysql/
total 260
.略
//初始化数据库
[root@mysql soft]# /soft/mysql/bin/mysqld --initialize --user=mysql --basedir=/soft/mysql --datadir=/soft/mysql/data
//验证:
[root@mysql soft]# echo $?
0
注:初始化会把临时密码打印出来
2.3.建立mysql的配置文件
[root@mysql soft]# cp /etc/my.cnf /etc/my.cnf.bak
[root@mysql soft]# cat > /etc/my.cnf <<EOF
[mysqld]
basedir=/soft/mysql
datadir=/soft/mysql/data
EOF
2.4.拷贝mysql.server启动文件到/etc/init.d/mysqld
//注:
[root@mysql soft]# ls /soft/mysql
bin data docs include lib LICENSE man mysql-file README share support-files
[root@mysql soft]# cp /soft/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@mysql soft]# chkconfig --add mysqld
[root@mysql soft]# chkconfig mysqld on
2.5.修改安装目录以及数据存放目录
[root@mysql soft]# sed -i '/^basedir=/cbasedir\/soft/mysql' /etc/init.d/mysqld
[root@mysql soft]# sed -i '/^datadir=/cdatadir\/soft/mysql\/data' /etc/init.d/mysqld
2.5.1.启动MySQL
[root@mysql soft]# /etc/init.d/mysqld start
2.6.加入环境变量
[root@mysql soft]# echo "export PATH=$PATH:/soft/mysql/bin" >>/etc/profile
[root@mysql soft]# source /etc/profile
2.7.登陆及修改密码
[root@mysql soft]# /soft/mysql/bin/mysql -uroot -p
mysql>alter user root@'localhost' identified by "SH123.com";
//注:验证
[root@mysql soft]# ps aux | grep mysql
/soft/mysql/bin/mysqld 命令
--basedir=/soft/mysql 指定MySQL的安装路径
--datadir=/soft/mysql/data 指定MySQL数据存放路径
--plugin-dir=/soft/mysql/lib/plugin 指定MySQL插件
--user=mysql 指定MySQL进程运行的用户
--log-error=web01.err 指定MySQL错误日志
--pid-file=/soft/mysql/data/web01.pid 指定MySQL的pid
//查看端口:(三种方式)
lsof -i:3306
ss -lntup | grep mysql
netstat -lntup | grep mysql
3、源码安装:
3.1.编译工具和依赖软件包
yum -y install gcc* pcre-devel openssl openssl-devel zlib-devel ncurses-devel cmake bison libxml2-devel libpng-devel
3.2、下载MYsql
//将MYSQL下载到目录 /soft下
mkdir -p /soft
wget https://cdn.mysql.com//Downloads/MySQL-5.5/mysql-5.5.62.tar.gz -C /soft/
//为mysql创建运行用户
useradd -r -s /sbin/nologin mysql
//解压 mysql
tar -xf mysql-5.5.62.tar.gz
//进入解压目录,编译压缩mysql并安装
cd mysql-5.5.62/
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306
//编译并安装
make &&make install
//将mysql连接到/usr/local/bin
ln -s /usr/local/mysql/bin/* /usr/local/bin
3.3.修改安装后的目录权限
cd /usr/local/mysql
chown -R root
chown -R mysql data
3.4.生成配置文件
cp -a /soft/mysql-5.5.62/support-files/my-medium.cnf /etc/my.cnf
3.5.初始化,生成授权表
cd /usr/local/mysql
./scripts/mysql_install_db --user=mysql
3.6.生成Mysql的启动和自启动管理脚本
cd /soft/mysql-5.5.62/support-files
cp -a mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
service mysqld start | stop |restart
3.7.验证
netstat -lntup | grep mysql
3.8.设置登陆密码
mysqladmin -uroot password SH123.com