回城传送–》《100天精通MYSQL从入门到就业》
文章目录
- 一、windows安装mysql
- 下载
- 只安装mysql server
- 客户端连接测试
- 二、linux安装mysql
- 安装前的准备
- 关闭CentOS 防火墙
- 关闭SELinux
- 为什么要关闭SELinux
- 创建MySQL用户和组
- 下载
- 安装mysql
- 解压mysql安装包
- 配置环境
- 创建数据目录
- 新建mysql配置文件
- 初始化数据库
- 查看初始化日志,确认下mysql的root密码
- 启动和关闭mysql数据库
- 启动mysql数据库
- 配置开机自启动
- 关闭mysql数据库
- 关闭mysqld服务
- 第二种关闭方式
- 修改初始化数据库时的临时密码
- 第三种关闭方式
- 第四种关闭方式
- 客户端连接测试
- 三、参考
一、windows安装mysql
这里使用的mysql版本是8.0.30 ,操作系统是win11 64位。
下载
下载地址:传送门–》
这里有各种系统对应的版本,自选
以window安装为例,简单介绍下安装过程
下载安装包到本地
只安装mysql server
第一步:双击安装包
第二步:
选择server only
第三步:
点击execute
直接下一步,next
第四步:
点击execute
第五步:
直接下一步,next
第六步:
mysql 的默认端口是3306,有需求的话,可自定义,然后next
使用默认配置:next
第七步:
配置root账号的密码
直接next
第八步:
更新配置,点击execute
点击finish
第九步:
直接下一步,next
点击finish
客户端连接测试
使用navicat客户端连接
连接成功
二、linux安装mysql
这里使用的mysql 版本是8.0.30,操作系统是CentOS8 64位。
安装前的准备
关闭CentOS 防火墙
先查看防火墙状态
systemctl status firewalld
防火墙是关闭的,如果没有关闭,可以执行这命令:
关闭防火墙:
systemctl stop firewalld.service
开机不要自启动:
systemctl disable firewalld.service
关闭SELinux
编辑文件:/etc/selinux/config
SELINUX=disabled
为什么要关闭SELinux
经验之谈(那些年含泪填的坑)
SELinux开启可能导致mysql服务启动不了,遇到报错:
提示"mysql deamon failed to start"错误信息
检查了数据目录和日志目录的权限和所属用户,权限和所属用户都没问题,最后定位到是SELINUX的权限限制了,把它关了,就正常了!
创建MySQL用户和组
创建mysql 的HOME 目录
mkdir -p /home/mysql
创建mysql 组
groupadd mysql
创建mysql 用户,并指定组和默认路径
useradd -r -d /home/mysql -g mysql mysql
将mysql默认路径的用户和组改成mysql
chown -R mysql:mysql /home/mysql
下载
下载地址:传送门–》
如图选择,然后下载到本地
然后把文件从本地复制至 /usr/local 目录下:
安装mysql
解压mysql安装包
tar -xvf mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz
解压后的效果:
将解压后的mysql目录更名
mv mysql-8.0.30-linux-glibc2.12-x86_64 mysql
设置目录所有者:
chown -R mysql:mysql /usr/local/mysql
配置环境
为MYSQL 配置环境,修改文件:
vi /etc/profile
最后加上这一行,保存文件:
export PATH=$PATH:/usr/local/mysql/bin
让新调整的配置生效:
source /etc/profile
创建数据目录
创建数据目录:
mkdir /usr/local/mysql/data
将数据目录用户和组调整为mysql:
chown -R mysql:mysql /usr/local/mysql/data
更改数据目录权限:
chmod 750 /usr/local/mysql/data
新建mysql配置文件
新建配置文件 /etc/my.cnf 并添加以下内容:
[mysqld]
server-id=1
port=3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
log-error=/usr/local/mysql/data/error.log
socket=/tmp/mysql.sock
pid-file=/usr/local/mysql/data/mysql.pid
character-set-server=utf8
lower_case_table_names=1
innodb_log_file_size=1G
default-storage-engine=INNODB
default_authentication_plugin=mysql_native_password
[client]
port=3306
default-character-set=utf8
初始化数据库
mysqld --initialize --user mysql
报错:
mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
执行这行命令报错了,原因是:新的服务器环境,上面很多依赖都没有,所以安装软件的时候遇到一大堆小问题,解决它很简单,它缺少啥就安装啥。
解决方案:
yum install -y libaio.so.1
又报错了:
Errors during downloading metadata for repository 'epel':
Status code: 404 for http://archives.fedoraproject.org/pub/archive/epel/8/Everything/x86_64/repodata/repomd.xml (IP: **)
Error: Failed to download metadata for repo 'epel': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
原因是:第三方的镜像站中均已移除CentOS 8的源,Centos 8版本已停止更新相应依赖导致的,下载新的yum源即可搞定。
解决方案:
备份之前的repo文件,命令:
mv /etc/yum.repos.d /etc/yum.repos.d.bak
创建源文件目录,命令:
mkdir -p /etc/yum.repos.d
下载新的yum源
curl https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo > /etc/yum.repos.d/Centos-vault-8.5.2111.repo
curl https://mirrors.aliyun.com/repo/epel-archive-8.repo > /etc/yum.repos.d/epel-archive-8.repo
如图所示操作:
再下载依赖:
yum install -y libaio.so.1
再安装
yum install -y libaio
提示成功后,初始化数据库:
mysqld --initialize --user mysql
查看初始化日志,确认下mysql的root密码
cat /usr/local/mysql/data/error.log
看到这两行,说明初始化成功了
2022-09-24T10:01:13.679765Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2022-09-24T10:01:22.585131Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
root用户的临时密码如图所示:7Xn5+后面打码的字符串
启动和关闭mysql数据库
启动mysql数据库
进入mysql目录:
cd /usr/local/mysql
启动数据库
support-files/mysql.server start
如图所示,启动成功!
查看mysql 状态:
support-files/mysql.server status
配置开机自启动
复制mysql.server 文件到/etc/init.d目录下
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
使用chkconfig 添加mysql服务到开机启动列表里
chkconfig --add mysqld
可使用systemctl 命令了,查看mysql数据库状态:
systemctl status mysqld
因为刚配置,这个mysqld服务未启动。
启动:
systemctl start mysqld
关闭mysql数据库
关闭mysqld服务
systemctl stop mysqld
第二种关闭方式
修改初始化数据库时的临时密码
进入mysql:
mysql -uroot -p
输入临时密码:
如果忘记了临时密码,从这边查找:
cat /usr/local/mysql/data/error.log
先修改临时密码:
alter user 'root'@'localhost' identified by 'xiaoxuzhu';
修改成功后,退出mysql:
使用新密码,尝试登录mysql:
登录成功;
使用临时密码,尝试登录,临时密码无效了。
第三种关闭方式
查看mysql服务状态:
support-files/mysql.server status
如果已关闭,请开启 再往下执行。
关闭mysql服务:
mysqladmin -uroot -pxiaoxuzhu shutdown
第四种关闭方式
进入mysql里,然后执行shutdown命令:
mysql -uroot -pxiaoxuzhu
shutdown;
quit;
客户端连接测试
新创建一个root用户针对外网访问的:
create user 'root'@'%' identified by 'xiaoxuzhu';
授予所有权限给root用户
grant all on *.* to 'root'@'%';
刷新权限,不需要重启就让权限生效。
flush privileges;
虚竹哥用的是云服务器,所以还要开启云服务器的安全组,让指定的3306 端口通过。
如果云服务器有设置防火墙,防火墙要开启3306端口;
使用navicat客户端连接
三、参考
《mysql 数据库进阶实战》:第1章 1.2安装mysql数据库(linux环境)
报错解决方案:mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such
报错解决方案:Failed to download metadata for repo ‘epel’: Cannot download repomd.xml: Cannot download …Status code: 404
我是虚竹哥,我们明天见~