二、Linux系统基本操作
1、查询centos版本
[root@host-10-150-223-171 ~]# uname -a
Linux host-10-150-223-171 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@host-10-150-223-171 ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)解释:这个命令会输出 CentOS 系统的版本号和其他相关信息。
- 使用
cat /etc/redhat-release
命令。
指令代码:cat /etc/redhat-release
操作结果:例如显示“CentOS Linux release 7.9.2009 (Core)”,这表示CentOS的版本是7.9.2009。 - 使用
lsb_release -a
命令。
指令代码:lsb_release -a
操作结果:显示CentOS的详细描述,包括发行版号和名称等。 - 使用
rpm -q centos-release
命令。
指令代码:rpm -q centos-release
操作结果:显示centos-release包的具体版本号,从而推断出CentOS的版本。
2、图形界面和命令行切换
2.1 命令行->图形界面
命令行输入:init 5 回车即可进入图形界面模式
2.2 图形界面->命令行
终端输入:init 3 回车即可进入命令行模式
三、Mysql数据库
1、mysql 原生安装
1.1 mysql 安装
(1) 下载mysql rpm包
cd /usr/local/src
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
(2) 安装下载的rpm包
yum localinstall mysql80-community-release-el7-3.noarch.rpm
或
sudo rpm -Uvh mysql80-community-release-el6-n.noarch.rpm
(3)查看yum存储库中的mysql版本
默认最新的enabled,需要改成需要的版本
yum repolist all | grepmysql
(4) 修改为需要的版本,机禁用yum存储库中mysql不需要的版本和开启需要的版本
yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community
或
手动编辑/etc/yum.repos.d/mysql-community.repo 文件来选择,把默认版本的enabled=1改为0,需要版本的enabled=1
(5) 安装mysql
[root@localhostsrc]# yum install mysql-community-server.x86_64
(6)mysql第一次启动自动生成临时密码
5.7版本mysql第一次启动自动生成临时密码,可通过查看日志找到
grep ‘temporary password’ /var/log/mysqld.log
操作如下:
如果这个文件为空:
1.删除原来安装过的mysql残留的数据(这一步非常重要,问题就出在这)
rm -rf /var/lib/mysql
2.重启mysqld服务
systemctl restart mysqld
3.再去找临时密码
grep ‘temporary password’ /var/log/mysqld.log
实际操作:Systemctl restart mysqld
[root@localhost ~]# systemctl restart mysqld
[root@localhost ~]# grep ‘temporary password’ /var/log/mysqld.log
2020-10-02T04:00:45.048107Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: wnygpa?nK5/kn
(7)登陆
这个时候执行
[root@localhostsrc]# mysql -u root –p
输入上面的临时密码,可以登录,但是查询时候提示reset密码
设置的密码不符合安全策略
mysql> alter user ‘root’@‘localhost’ identified by ‘eifire@119’;
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
修改复杂点Ei@@@1995@,ok成功
mysql> alter user ‘root’@‘localhost’ identified by ‘Ei@@@1995@’;
然后mysql> flush privileges;
(8)修改密码策略,完成密码修改登陆
如果想要查看MySQL完整的初始密码规则,登陆后执行以下命令
mysql> show variables like ‘validate_password%’;
密码的长度是由validate_password_length决定的,但是可以通过以下命令修改
set global validate_password_length=4;
validate_password_policy决定密码的验证策略,默认等级为MEDIUM(中等),可通过以下命令修改为LOW(低)
set global validate_password_policy=0;
原因是因为密码设置的过于简单会报错,MySQL有密码设置的规范,validate_password_policy的值有关,如图所示:
修改完成后密码就可以设置的很简单,比如1234之类的。
开始操作:
mysql> set global validata_password.policy=0;
mysql> alter user ‘root’@‘localhost’ identified by ‘eifire@119’;
mysql> flush privileges;
1.2 完美卸载
// rpm包安装方式卸载
查包名:rpm -qa|grep -i mysql
删除命令:rpm -e –nodeps 包名
(1)查看已安装的mysql
命令:rpm -qa | grep -i mysql
(2)卸载mysql
命令:yum remove mysql-community-server-5.6.36-2.el7.x86_64
查看mysql的其它依赖:rpm -qa | grep -i mysql
(3)卸载依赖
yum remove mysql-libs
yum remove mysql-server
yum remove perl-DBD-MySQL
1.3 mysql常用命令
1.3.1 重启mysql
service mysqld restart
[root@host-10-150-223-73 mysql]# service mysql restart
Shutting down MySQL… SUCCESS!
Starting MySQL. SUCCESS!
==========================================================================
1.3.2 查询mysql运行状态
指令一:ps -aux|grep mysql
指令二:ps -ef|grep mysql
执行结果中看到了mysql进程,确定mysql正在运行与否。
(a)mysql未启动起来
备注: 3306未启动起来时候,通过telnet测试端口服务。
**解决:**重启mysql服务
(b)mysql服务运行起来了
==========================================================================
1.3.3 whereis mysql
[root@localhost src]# whereis mysql
==========================================================================
1.3.4 查询端口服务3306
https://www.cnblogs.com/hindy/p/7249234.html
[root@localhost ~]# netstat -anp |grep 3306
==========================================================================
1.4 mysql安装遇到问题
1.4.1 2003错误,mysql连接
【解决】:
那么我们就有两种方法去解决了
-
关闭防火墙
-
设置防火墙开放端口
第一种方法:
//停止
systemctl stop firewalld.service
//禁止开机启动
systemctl disable firewalld.service
第二种方法:
//这里发现防火墙是开启的,再来查看防火墙控制的端口
systemctl status firewalld
//查看防火墙控制的端口,发现我想要监听的8081端口没有开启
firewall-cmd --list-all
//永久开启3306端口
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
//重载防火墙
sudo firewall-cmd --reload
==========================================================================
1.4.2 1130错误,关闭防火墙后出现t
执行:
[root@localhost ~]# systemctl stop firewalld.service
【问题分析】:
在用Navicat配置远程连接Mysql数据库时遇到如下报错信息,这是由于Mysql配置了不支持远程连接引起的。为了安全性, 默认情况下,mysql帐号不允许从远程登陆,只能在localhost登录。
【解决】:
不支持远程登录,需要修改用户表的数据
实际操作:
mysql -u root -p
mysql>use mysql;
mysql>select ‘host’ from user where user=‘root’;
mysql>update user set host = ‘%’ where user =‘root’;
mysql>flush privileges;
mysql>select ‘host’ from user where user=‘root’;
第一句是以权限用户root登录
第二句:选择mysql库
第三句:查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称)
第四句:修改host值(以通配符%的内容增加主机/IP地址),当然也可以直接增加IP地址
第五句:刷新MySQL的系统权限相关表
第六句:再重新查看user表时,有修改。。
记得Mysql服务需要重新启动(确保修改有效),否则可能修改的结果无法体现。
==========================================================================
1.4.3 2058错误,关Navicat解决了,但是SQLyog出现错误
【原因分析】:
新的MySQL 8.0安装,在初始化数据目录时,将‘root’@'localhost’创建帐户,并且该帐户caching_sha2_password默认使用,密码的加密方法发生了改变,因此SQLyog不能正常解析,才报出如上错误。
【解决方案】:https://www.jb51.net/article/171721.htm
第一步:使用命令行(win+R --> cmd)登录mysql,需要输入密码;若出现如下界面,登录成功
第二步:输入 use mysql;(分号不要忘记)
第三步:输入 select user,host from user; 出现如下界面。
第四步:从图可以看到root 对应的是localhost,接下来输入ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘root’; (这个root是你要改的密码,可以写其他的).
出现Query OK就可以了,之后在去sqlyog连接就能连接成功了。(如果你root对应的是%,那 ‘root’@‘localhost’ 改成 ‘root’@‘%’)
==========================================================================
1.4.4 1045错误,Access denied for user ‘root’@‘localhost’ (using password: YES) 拒绝访问
【解决】:
之前是:只读权限,且输入可能有问题,在下面图例(错误)。
之后:改成下面这个可以
mysql> grant all privileges on *.* to 'test002'@'%' identified by 'test002@2022jtj' with gran t option;
1.5 mysql数据库使用
1.5.1 新建数据库-字符集-排序规则
mysql在新建数据库时(Navicat)界面时会遇到两个典型选项:
(1)字符集
一般选择utf8.
utf8与utfmb4的区别:
utf8mb4兼容utf8,且比utf8能表示更多的字符。至于什么时候用,一般和项目需求有关,可以查看unicode编码区,从1 ~ 126就属于传统utf8区。
当然utf8mb4也兼容这个区,126行以下就是utf8mb4扩充区,什么时候你需要存储那些字符,你才用utf8mb4,否则只是浪费空间。
(2)排序说明
排序一般分为两种:utf_bin和utf_general_ci
bin 是二进制, a 和 A 会别区别对待.
例如你运行:
SELECT * FROM table WHERE txt = ‘a’
那么在utf8_bin中你就找不到 txt = ‘A’ 的那一行, 而 utf8_general_ci 则可以找到.
utf8_general_ci 不区分大小写,这个你在注册用户名和邮箱的时候就要使用。
utf8_general_cs 区分大小写,如果用户名和邮箱用这个 就会照成不良后果
utf8_bin:字符串每个字符串用二进制数据编译存储。 区分大小写,而且可以存二进制的内容
utf8_uicode_ci和utf8_general_ci对中、英文来说没有实质的差别。
utf8_general_ci校对速度快,但准确度稍差。(准确度够用,一般建库选择这个)
utf8_unicode_ci准确度高,但校对速度稍慢。
(3)
标签:utf8,Mysql,root,user,mysql,基本操作,password,安装,localhost From: https://blog.csdn.net/donghuandong/article/details/137042578
- 基于mysql8.0新建对的,然后字符集和排序规则都不设置,新建后,你会发现mysql默认设置为如下值:
字符集 :utf8mb4
排序规则:utf8mb4_0900_ai_ci
以utf8为例,它最多支持 3 个字节,当你存4字节的 utf8 编码字符时,会入库失败(常见的如:emoji ),在2010年重新发布了 utf8mb4 支持utf8。
- mysql 数据库默认字符集
show variables like ‘character_set_database’;
- mysql server(服务端)默认字符集
show variables like ‘character_set_server’