Linux——基于Linux的MySQL安装和基本使用(day17)

目录

一、前言

1.1 目标

1.2 数据库基础概述 

1.3 常见数据库

1.4 MySQL

1.5 ubuntu下MySQL安装步骤和简单操作

1.5.1 MySQL安装步骤

1.5.2 安装后的首先操作

二、数据库和数据表管理

2.1 数据库管理

2.2 数据表管理

2.2.1 数据表设计

2.2.2 创建表

2.2.3 修改表

2.2.4 删除表

三、Navicat for MySQL连接数据库

四、简单查询与数据操作

4.1 查询

4.2 插入

4.3 修改和删除

五、备份和恢复数据库

六、练习

七、安装小结

7.1 更换国内镜像源

7.2 安装完成修改密码

7.3 连接mysql


一、前言

1.1 目标

1.2 数据库基础概述 

 

 

1.3 常见数据库

1.4 MySQL

安装MySQL时,会自动安装客户端和依赖项

 

1.5 ubuntu下MySQL安装步骤和简单操作

1.5.1 MySQL安装步骤

以下代码都是在命令行中一行一行的执行:

su root
cp /etc/apt/sources.list /etc/apt/sources.list/backup
vim /etc/apt/sources.list

删除其中 def 的镜像源,更换为:
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted
deb http://mirrors.aliyun.com/ubuntu/ focal universe
deb http://mirrors.aliyun.com/ubuntu/ focal-updates universe
deb http://mirrors.aliyun.com/ubuntu/ focal multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted
deb http://mirrors.aliyun.com/ubuntu/ focal-security universe
deb http://mirrors.aliyun.com/ubuntu/ focal-security multiverse

:wq!强制保存退出

cat /etc/apt/sources.list    # 查看发现已经更改成功
apt update                   # 更新一下
apt-get install mysql-server # 安装mysql
y                            # 会有询问,输入 y 继续
                             # 客户端会自动安装
service mysql status         # 检查是否安装成功

出现这个说明安装成功 ,按:wq可以退出

cat /etc/mysql/mysql.conf.d/mysqld.cnf  # 查看mysql配置文件信息

user		= mysql                                  # 当前mysql用户  
# pid-file	= /var/run/mysqld/mysqld.pid             
# socket	= /var/run/mysqld/mysqld.sock            # 以socket,可以负载
# port		= 3306                                   # 端口号
# datadir	= /var/lib/mysql                         # 数据库存放的位置


# If MySQL is running as a replication slave, this should be
# changed. Ref https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_tmpdir
# tmpdir		= /tmp
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address		= 127.0.0.1                      # 现在绑定的地址,就是本机目录,允许远程
                                                     # 访问的话要注销,现在是允许本机访问
mysqlx-bind-address	= 127.0.0.1

1.5.2 安装后的首先操作

进入mysql,安装完首先要做的:1.修改密码;2.允许远程访问

mysql                          # 直接输入 mysql 进入数据库

------------------------- 1.修改密码 ----------------------------

use mysql                      # 使用数据库
select user,host from user;    # 查询 user 对应的 host 的服务从 user 这个表里去查
update user set authentication_string='111111' where user='root';
                               # 更改设置用户 root 的密码为111111
flush privileges               # 提交一下,让他生效

------------------------ 2.允许远程访问 --------------------------
update user set host='%' where user='root' and host='localhost' LIMIT 1;
                               # %:表示允许用户 root 允许所有主机访问
                               # LIMIT 1:表示只修改限制1行
                               # 加上LIMIT 1,只要找到了对应的一条记录,就不会继续向下扫描了,
                               # 效率会大大提高
                               # and host='localhost' LIMIT 1 这后面这里不加也可以

以上操作如下两张图所示:

输入mysql -uroot -p尝试进入,也可以mysql -uroot -p111111-p不输入密码下面也会要求输入

-u后面接用户名,-p后面接密码

如图,说明已经进入mysql 

注意:mysql语句要加分号 ;

二、数据库和数据表管理

2.1 数据库管理

--------------- 上图代码的意思 ----------------
show database;    # 展示数据库
use mysql;        # 使用mysql
select version();# 查看版本

 

create database pythonDB charset='utf8';  # 创建数据库pythonDB
show databases;                           # 展示已有数据库
use pythonDB;                             # 切换到数据库pythonDB
select database();                        # 查看当前使用的数据库
drop database pythonDB;                   # 删除数据库pythonDB
show databases;                           # 展示已有数据库
select database();                        # 查看当前使用的数据库

2.2 数据表管理

2.2.1 数据表设计

(1)ER图

(2)主键(Primary Key)

(3)实体关系和外键

 (4)约束

2.2.2 创建表

先创建一个新数据库

create database stuDB charset='utf8';

create table student(                   # 创建一个表 student
id int auto_increment primary key not null comment '主键',
                                        # 创建一个自动递增的主键id,约束:不能为空,注释:主键
name varchar(10) not null comment '学生姓名',
                                        # 创建可变字符串类型name字段,长度10
sex bit(1) default 0 comment '性别',     # 创建bit即char类型sex,约束默认值为0
address varchar(50) comment '地址'       # 创建字符串类型address,长度为50
);

show tables;                             # 查看已有的表
show create table student;               # 查看是不是刚才创建的

显示结果如下图,说明是刚才创建的

show tables;

Tables_in_stuDB 应该是一个说明:是stuDB数据库下的表(怀疑)

2.2.3 修改表

desc student;                               # 查看表的结构
alter table student add hobby varchar(100); # 给表student添加字段hobby类型为字符串,长度100
alter table student drop hobby;             # 删除字段hobby

 

alter table student modify address varchar(70) not null; # 修改address长度为70,非空
desc student; 
alter table student change sex gender bit(1); # 改变sex字段名为gender,需要重新指定类型               

2.2.4 删除表

 

drop table student;

三、Navicat for MySQL连接数据库

systemctl status mysql
mysql -u root -p

查看mysql服务状态

这样说明正常启用,确定服务没有问题

因为Navicat for MySQL 安装在windows下,所以要连接Ubuntu的mysql 需要连接ip,不能直接localhost本机连接

如果连接失败,进入该路径 /etc/mysql/mysql.conf.d 查看mysql.conf.d,可以将bind-address        = 127.0.0.1语句(只允许本机访问)注释掉,允许所有访问

然后重启mysql服务:sudo service mysql restart

博主这里是在bind-address        = 127.0.0.1语句下一行多出一行mysqlx-bind-address    = 127.0.0.1 然后就可以直接连接了

但并不理解mysqlx-bind-address    = 127.0.0.1 该语句的意思,如果有大佬懂的话,希望可以解答一下

但出现了 1251- Client does not support authentication protocol requested by server... 的问题,这里参考了Mysql 解决1251- Client does not support authentication protocol requested by server...的问题_上帝代言人的博客-CSDN博客_1251-client does not support

这位博主的解决方案,select host,user,plugin,authentication_string from mysql.user; 查看信息后发现,root确实是'%',所以输入 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456' 更新user为root,host为% 的密码为123456

解决

双击打开进入,右键新建数据表:(MySQL的)utf8utf8mb3的别名,在MySQL中,实际只有utf8mb4utf8mb3。至于uft8,在 V8.0 还是指代的utf8mb3,未来的会变为uft8mb4

右键新建表,一般id设置主键,显示设计表保存后为一个表

查询时右键,新建查询,输入select * from student; 运行可查看所有内容

四、简单查询与数据操作

4.1 查询

 

4.2 插入

insert into student values(0,'刘德华',45);  # id自动递增的也要给0占位

  

insert into student(name)values('周华健');    # 前提是要允许为null

insert into student  values(0,'谢霆锋',44),(0,'胡歌',40)

4.3 修改和删除

update student set name='王菲' where id=6;
# 不加 where id=6 则会全部修改

delete from student where id=2;
# 不加where id=2 也会全部删除

navicat for mysql的语句和命令行的命令一样,只不过最好一行一行的运行

五、备份和恢复数据库

ysqldump -uroot -p stuDB > TestBackFile.sql  # 备份stuDB数据库为TestBackFile.sql
mysqldump -uroot -p stuDB student > studentFile.sql   # 指定备份表
# 都是备份到当前路径

 

mysql -uroot -p huifuDB < TestBackFile.sql  # 恢复

六、练习

desc student:查看表的结构

select * from student:查看表的内容

七、安装小结

7.1 更换国内镜像源

ubuntu 20.04 LTS 更换阿里云源
第一步:先备份下原始源:

sudo cp /etc/apt/source.list /etc/apt/source.list.backup
第二步:修改文件   

vim  /etc/apt/source.list
清除原有的,替换以下源

复制代码
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted
deb http://mirrors.aliyun.com/ubuntu/ focal universe
deb http://mirrors.aliyun.com/ubuntu/ focal-updates universe
deb http://mirrors.aliyun.com/ubuntu/ focal multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted
deb http://mirrors.aliyun.com/ubuntu/ focal-security universe
deb http://mirrors.aliyun.com/ubuntu/ focal-security multiverse
复制代码
保存下,即可执行更新

sudo  apt update
sudo  apt upgrade

7.2 安装完成修改密码


安装完毕首先修改密码
# 命令安装

sudo apt-get update

sudo apt-get install -y mysql-server 

# 进入mysql命令行

mysql -udebian-sys-maint -p

# 输入/etc/mysql/debian.cnf中的password

# 修改密码

use mysql;

update user set authentication_string='123456' where user='root';

FLUSH PRIVILEGES;

ubuntu系统mysql8忘记root密码修改

1 停止mysql服务

service mysqld start

2 增加参数运行 skip-grant-tables参数为忽略用户验证

mysqld --skip-grant-tables --user=mysql

3 打开另一个终端,mysql -uroot可以登录到mysql数据库

4 在mysql终端中切换包含用户信息的名称为mysql的数据库

use mysql;

5 运行更新用户密码的sql语句,mysql 5.7.20版本中用户密码字段为authentication_string

更新root用户密码为空的sql

update user set authentication_string='' where user='root';

更新root用户密码为复杂字符串的sql,mysql会检查如果密码简单不能通过

update user set authentication_string=password('Abc@123') where user='root';

6 关闭mysqld进程,使用ps aux | grep mysqld找到进程id,然后使用kill -9 id关闭mysqld进程

7 使用系统服务启动mysql服务器

service mysqld start

再次使用mysql命令,使用修改的密码可以登录

7.3 连接mysql

navicat for mysql 连接不上msyql服务的原因排除
1:确保mysql的数据库服务正确启动
2:输入的用户名和密码是否正确
3:数据是否开启远程连接【默认安装mysql数据完成后 只允许本地连接】

注意:对mysql配置文件更改完毕之后,一定要重启mysql服务 否则的话是不生效的

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清园暖歌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值