回城传送–》《100天精通MYSQL从入门到就业》
一、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
我是虚竹哥,我们明天见~