# 什么是数据库? ``` 数据库是存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除操作,它能为多个用户共享,具有尽可能小的冗余的特点,是与应用程序彼此独立的数据集合。 简而言之,数据库是某种约定的数据结构高效的存储数据,并在用户需要时通过检索展现给用户。 ``` # 如何安装数据库 ## 1.安装数据库 ``` 第一步:apt install mariadb-server #安装服务 ``` ## 1.1 连接数据库 ``` 第一步:mysql -u root -p #在本地使用root用户登录数据库 第二步:Enter password: #在这里输入root密码 第三步:exit; #退出数据库 ``` ## 1.2 查看数据库端口 ``` 第一步:apt install net-tools #安装检测端口命令 第二步:netstat -ntupl | grep mysql #查看运行端口,过滤mysql ``` ##### 效果展示 ![image.png](http://ww1.sinaimg.cn/large/007wL02tgy1gj4ydd24b5j311s01r74b.jpg) ## 1.3 查看mysql服务是否运行 ``` 第一步:systemctl status mysql #查看服务状态信息 ``` ##### 效果展示 ![效果图1][1] ## 1.4 重启、停止、启动Mysql服务 ``` 第一步:systemctl restart mysql #重启服务 第二步:systemctl stop mysql #停止服务 第三步:systemctl start mysql #启动服务 ``` ## 1.5 查看mysql默认存放路径 ``` 第一步:cd /var/lib/mysql #进入指定路径 第二步:ls #查看当前路径下的文件及目录 ``` ##### 效果展示 ![效果图2][2] # Mysql默认端口号 ``` 3306 ``` # 默认数据库主配置文件位置 ``` vim /etc/mysql/mariadb.conf.d/50-server.cnf ``` # 如何允许mysql远程连接 ## 2.配置允许访问权限 ## 2.1允许指定用户远程访问mysql ``` 第一步:mysql -u root -p #使用root用户登录本地数据库 第二步:use mysql; #连接到mysql库 第三步:grant all privileges on *.* to 'user01'@'%' identified by 'Skills39' with grant option; #配置远程访问权限,user01是远程登录使用的用户名,Skills39是远程登录使用的密码, %允许远程所有IP访问,如果需要指定IP,使用IP代替%。 第四步:flush privileges; #使配置文件生效 第五步:select host,user from user; #查看用户表 第六步:exit; #退出数据库 第七步:vim /etc/mysql/mariadb.conf.d/50-server.cnf #打开配置文件 第八步:找到28行进行注释 #bind-address = 127.0.0.1 第九步:systemctl restart mysql #重启服务 ``` ##### 效果展示 ![效果图3][3] ## 测试 ``` 第一步:apt install mariadb-client #安装客户端 第二步:mysql -h 192.168.10.1 -u user01 -p #-h 指定IP -u 指定用户 -p 指定密码 ``` ##### 效果展示 ![效果图4][4] ## 2.2 允许使用root用户访问mysql ``` 第一步:mysql -u root -p #使用root用户登录本地数据库 第二步:use mysql; #连接到mysql库 第三步:update user set plugin='' where user='root'; #指定默认登录用户为root 第四步:flush privileges; #使配置生效 第五步:update user set password=password('Skills39') where user='root'; #设置密码 第六步:flush privileges; #使配置生效 第七步:update user set host='%' where host='localhost' and user='root' #设置本地登录变成允许所有人登录 第八步:flush privileges; #使配置生效 第九步:select host,user from user; #查看用户表 第十步:vim /etc/mysql/mariadb.conf.d/50-server.cnf #打开配置文件 第十一步:找到28行进行注释 #bind-address = 127.0.0.1 第十二步:systemctl restart mysql #重启服务 ``` ## 测试 ``` 第一步:apt install mariadb-client #安装客户端 第二步:mysql -h 192.168.10.1 -u root -p #-h 指定IP -u 指定用户 -p 指定密码 ``` ##### 效果展示 ![效果图5][5] ## 2.3 删除远程访问 ```` 第一步:mysql -u root -p #进入数据库 第二步:use mysql; #切换数据库 第三步:select host,user from user; #查看用户表 第四步:delete from user where user='user01'; #删除user01用户 第五步:select host,user from user; #查看用户表 第六步:update user set host='localhost' where host='%' and user='root'; #将%修改为localhost 指定用户为root 第七步:select host,user from user; #查看用户表 ```` ##### 效果展示 ![效果图6][6] # 创建数据库 ``` 第一步:mysql -u root -p #指定root登录本地数据库 第二步:create database yu; #创建数据库名 第三步:show databases; #查看数据库 ``` ##### 效果展示 ``` +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | yu | +--------------------+ 4 rows in set (0.000 sec) #显示服务器上所有数据库,除yu外,其他的数据库是mysql 安装时就有的,其中包含了mysql的一些架构和参数,不要删除他们。 ``` ## 删除数据库 ``` 第一步:mysql -u root -p #登录数据库 第二步:show databases; #查看数据库 第三步:drop database yu; #删除yu数据库 第四步:show databases; #查看数据库 ``` ## 备份数据库 ``` 第一步:mysql -u root -p #登录数据库 第二步:create database yu; #创建yu数据库 第三步:exit; #退出数据库 第四步:mysqldump -u root -p yu>~/yu.1 #使用mysqldump将yu数据库备份到当前用户家目录下,命名为yu.1 mysqldump -u {可连接到数据库的用户} -p {要备份的库名称}>{存放在系统中的位置} ``` ## 还原数据库 ``` 第一步:mysql -u root -p #登录数据库 第二步:create database yus; #创建数据库 第三步:exit; #退出 第四步:mysql -u root -p yus>./yu.1 #将yu.1的数据库内容还原到yus数据库中 ``` ## 使用create table命令创建数据表 ``` 第一步:mysql -u root -p #登录数据库 第二步:create database yu #创建yu数据库 第三步:use yu #进入yu数据库 第四步:create table t1 (uid int, uname char(30) ) engine=innodb charset=utf8; 语法说明: create table [表名] ([表头第一列] [数据类型], [表头第二列] [数据类型],...) engine=[表使用的引擎] charset=[表使用的字符集]; #t1是表名称,后面的小括号中,声明了两列,用逗号分隔每一列,每一列表头名称和数据类型组成,第一列表头名称是uid,数据类型是整类,第二列表名称是unmae,数据类型是可以存储30个字符的固定长度字符串,关于数据类型。 #表头,表格的最上面一行,比如说“姓名/性别/籍贯”,下面每一行都可以填写一个人的信息 #表引擎决定表数据的存储方式 #表的字符集决定了表可以存储字符的种类,本例是用来 utf8(UCS Transfer Format 8) ``` ## 查看表 ``` 第一步:show tables; +--------------+ | Tables_in_yu | +--------------+ | t1 | | ti | +--------------+ 2 rows in set (0.000 sec) ``` ## 查看表数据 ``` 第一步:desc t1; MariaDB [yu]> desc t1; +-------+----------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+----------+------+-----+---------+-------+ | uid | int(11) | YES | | NULL | | | uname | char(30) | YES | | NULL | | +-------+----------+------+-----+---------+-------+ 2 rows in set (0.001 sec) #Field 每一列表头名称 #Type 对应这一列的数据类型 #Null 这一列字段是否能成为NULL,默认字段能成为NULL #key 索引信息,没创建索引就为空 #Default 是否设置了默认值,Null表示没有设置默认值 #Extra 追加属性 ``` ## 使用alter table命令修改数据表 ## 语法 ``` alter table [表名] add [列头名称] [此列允许的数据类型]; ``` ## 新增列 ``` 第一步:alter table t1 add age tinyint unsigned; #新增一列 #给t1表增加一列,列头名称为age ,数据类型为tinyint unsigned 能存储证书范围为0-255 第二步:desc t1; #查看表数据 ``` ## 最前列 ``` 第一步:alter table t1 add username01 tinyint unsigned first; #在最前列添加一个列 第二步:desc t1; #查看表数据 ``` ## 某列后面 ``` 第一步:alter table t1 add user02 tinyint usigned after uid; #在uid列后面新增一列 第二步:desc t1; #查看表数据 ``` ## 修改表字符编码 ##### 语法 ``` alter table [表名] convert to character set [编码名]; ``` ``` 第一步:show create table t1 \G #显示建表语法 \G精简输出 第二步:alter table t1 convert to character set gbk; 修改字符编码 第三步:show create table t1 \G #显示建表语法 \G精简输出 ``` ##### 效果展示 ![效果图7][7] ## 重命名表头字段名称 ## 语法 ``` alter table [表名] change [原列名] [新列名] [新列类型]; ``` ``` 第一步:desc t1; #查看表数据 第二步:alter table t1 change uid id int; #将uid 修改成id 第三步:desc t1; #查看表数据 ``` ##### 效果展示 ![效果图8][8] ## 如何使用drop table命令删除数据表 ``` 第一步:show tables; 查看表 第二步:drop table t1; #删除t1表 ``` ## MySQl 如何重命名表 ## 语法 ``` rename table [原表名] to [新表名] ``` ``` 第一步:show tables; #查看表 第二步:rename table ti to t1; #将ti修改成t1 第三步:show tables; #查看表 ``` ##### 效果展示 ![效果图9][9] ## Mysql主从复制 ## 主 ``` 第一步:apt install mariadb-server #安装服务 第二步:mysql -u root -p #本地登录数据库 第三步:grant replication slave on *.* to user01@'%' identified by 'Skills39'; #创建用户并设置密码 第四步:flush privileges; #授权远程登录 第五步:exit; #退出 第六步:vim /etc/mysql/mariadb.conf.d/50-server.cnf #打开配置文件 注释第28行 (图一) 73-74行取消注释 (图二) 保存退出 第七步:systemctl restart mysql #重启服务 ``` ![1][10] ![2][11] ## 从 ``` 第一步:apt install mariadb-server #安装服务 第二步:vim /etc/mysql/mariadb.conf.d/50-server.cnf #打开配置文件 注释第28行 (图一) 73-74行取消注释 (图二) 将73行的server-id =1 修改成 server-id =2 第三步:systecmt restart mysql #重启服务 第四步:mysql -u root -p #登录数据库 第五步:change master to master_host='主库IP地址', master_port=3306, master_user='user01', master_password='Skills39'; 第六步:start slave; #开启slave服务 第七步:show slave status \G; #出现两个yes即为成功 ``` ![3][12] ![4][13] 效果展示 ![14][14] [1]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007143530.jpeg [2]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007143629.jpeg [3]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007143718.jpeg [4]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007143745.jpeg [5]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007143815.jpeg [6]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007143845.jpeg [7]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007143924.jpeg [8]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007143953.jpeg [9]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007144021.jpeg [10]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007144050.jpeg [11]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007144105.jpeg [12]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007144130.jpeg [13]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007144150.jpeg [14]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007144222.jpeg 两个YES代表成功
最后修改:2021 年 10 月 07 日
如果觉得我的文章对你有用,欢迎打赏