Linux之Mysql安装配置
- 第一种:Linux离线安装Mysql(提前手动下载好tar.gz包)
- 第二种:通过yum安装配置Mysql(服务器有网络)
第一种:tar.gz包安装
1、 查看是否已经安装 Mysql
rpm -qa | grep mysql
如果没有什么返回信息,说明没有安装 Mysql,那么直接进入2
2、下载官方 Mysql 包 官方下载地址
选择对应的包 如下mysql5.7(最常用)
3. 上传到服务器后解压(解压后可删除安装包,节省空间)
一般放在在/usr/local目录下
# 解压文件至/usr/local/目录 tar -zxvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz # 重命名为 mysql mv /usr/local/mysql-5.7.20-linux-glibc2.12-x86_64/ /usr/local/mysql
解压重命名后目录一般是这样的
4、创建用户组
至于为什么要创建用户和组可以看看这篇 Linux下安装Mysql为什么要创建对应的用户和用户组
groupadd mysql #创建用户组 # -r 参数表示 mysql 用户是系统用户,不可用于登录系统,创建用户 mysql 并将其添加到用户组 mysql 中 useradd -r -g mysql mysql
分配用户组
chown -R mysql /usr/local/mysql/ # 将文件的所有属性改为 mysql 用户 chgrp -R mysql /usr/local/mysql/ # 将组属性改为 mysql 组
5.创建数据目录并赋予权限
mkdir -p /data/mysql #数据目录 chown mysql:mysql -R /data/mysql
6.修改配置文件 vim /etc/my.cnf
[mysqld] bind-address=0.0.0.0 port=3306 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 #character config character_set_server=utf8mb4 symbolic-links=0 explicit_defaults_for_timestamp=true
7.初始化数据库
参数: --basedir 为mysql解压目录,–datadir 为mysql数据存放目录。(注意安装路径是否一致)
cd /usr/local/mysql/bin/ ./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
查看初始密码
cat /data/mysql/mysql.err
密码已经生成
注:在初始化数据库时可能报缺少xx动态库的错误如:error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
解决方法:
第1步:查看是否安装了libaio,无返回则说明未安装,执行步骤2
rpm -qa|grep libaio
第2步:切换到root用户,使用命令yum install -y libaio进行安装
8. 加入到系统服务并启动mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql service mysql start
登录mysql,一定要开启服务后才能登陆
/usr/local/mysql/bin/mysql -u root -p
登录成功后会提示你重置密码
# 修改密码,SQL语句后面的分号不能丢 ALTER USER 'root'@'localhost' IDENTIFIED BY '1234'; FLUSH PRIVILEGES; #刷新
退出 quit
重启服务 service mysql restart
再次登陆 /usr/local/mysql/bin/mysql -u root -p //输入刚修改的密码1234敲回车键
到此mysql已经安装完成了
在用工具连接mysql时提示:MySQL 异常: "Host 'xxx' is not allowed to connect to this MySQL server"
解决:
登录mysql,刷新规则允许外部访问
host修改成%表示,所有主机都可以通过root用户访问数据库
use mysql #选择访问mysql库 update user set host = '%' where user = 'root'; #使root能再任何host访问 FLUSH PRIVILEGES; #刷新
第二种:通过yum在线安装Mysql
1、找到对应linux的版本进行下载
[root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.8.2003 (Core)
下载和安装mysql源
下载地址:https://dev.mysql.com/downloads/repo/yum/ 或 http://repo.mysql.com #使用wget下载mysql wget http://repo.mysql.com/mysql80-community-release-el7.rpm
如果显示wget未找到命令,则需要先安装wget:
yum -y install wget,然后再次执行上面命令, 使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的样子,然后就可以直接yum安装了。
结果图
2. 第二步 安装
(1) 通过yum安装方法,会直接添加mysql环境变量和启动服务
yum -y install mysql80-community-release-el7.rpm
(2) 安装MySQL服务器:community-server
yum -y install mysql-community-server
3、第三步 启动服务并查看服务状态
systemctl start mysqld #一定要启动服务! systemctl status mysqld #查看服务状态
4、第四步 获取密码
登录 MySQL 必须要通过密码,此时 root 用户的密码可以通过以下命令在日志文件中获取:
grep "password" /var/log/mysqld.log
5、第五步 登录并求改密码
(1)登录
(2) 修改密码(修改规则)
MySQL 8.0+ 版本为以下方式:(规则修改) set global validate_password.policy=0; set global validate_password.length=4; MySQL 8.0+ 版本为以下方式:(密码修改) ALTER USER 'root'@'localhost' IDENTIFIED BY '1234';
6、第六步 授权
授权远程用户连接
# 改表法 # 选择数据库 use mysql; # 最后授权 MySQL,允许远程用户登录访问 MySQL update user set host = '%' where user = 'root'; # 刷新权限 flush privileges;
通过yum安装Mysql完毕!
linux下设置mysql开机自启动
linux开机自启动的服务都存在这个/etc/rc.d/init.d/
文件夹下面,开机的时候会自动去启动该文件下的服务,那么到这里事情就简单了,我们只需要把mysql的启动服务copy过来即可。
1、copy并重命名
cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql
2、复制成功后我们需要给赋予权限
chmod +x /etc/init.d/mysql
3、添加为服务:
chkconfig --add mysql
4、查看服务列表:
chkconfig --list
看到3、4、5状态为开或者为 on 则表示成功。 如果是 关或者 off 则执行一下:
chkconfig --level 345 mysqld on
重启计算机:reboot
再次查看服务列表或者查看3306端口号