Linux下安装使用Mysql,看这一篇就够了

一、部署Mysql数据库

1.下载Mysql安装包

Mysql下载

[root@localhost ~]# ls mysql57-community-release-el7-11.noarch.rpm 
mysql57-community-release-el7-11.noarch.rpm

2.安装Mysql

[root@localhost ~]# rpm -ivh mysql57-community-release-el7-11.noarch.rpm
[root@localhost ~]# yum -y install mysql-server

3.启动Mysqld服务

[root@localhost ~]# systemctl start mysqld
[root@localhost ~]# systemctl enable mysqld
[root@localhost ~]# ss -antulp | grep :3306
tcp    LISTEN     0      80     [::]:3306               [::]:*                   users:(("mysqld",pid=54086,fd=21))

4.查看初始密码

[root@localhost ~]# grep 'root@localhost:' /var/log/mysqld.log
2020-03-20T00:57:34.072739Z 1 [Note] A temporary password is generated for root@localhost: hsQ(7(so_cgX

5.使用初始密码登陆

[root@localhost ~]# mysql -hlocalhost -uroot -p'hsQ(7(so_cgX'
mysql: [Warning] Using a password on the command line interface can be insecure.
...
Server version: 5.7.29
...
mysql>

6.修改登陆密码

mysql> alter user root@"localhost" identified by "123qqq...A";

7.使用新密码登陆

[root@localhost ~]# mysql -uroot -p123qqq...A

8.修改密码策略

[root@localhost ~]# mysql -uroot -p123qqq...A
mysql> show variables like "%password%";     //查看变量
+----------------------------------------+-----------------+
| Variable_name                          | Value           |
+----------------------------------------+-----------------+
| default_password_lifetime              | 0               |
| disconnect_on_expired_password         | ON              |
| log_builtin_as_identified_by_password  | OFF             |
| mysql_native_password_proxy_users      | OFF             |
| old_passwords                          | 0               |
| report_password                        |                 |
| sha256_password_auto_generate_rsa_keys | ON              |
| sha256_password_private_key_path       | private_key.pem |
| sha256_password_proxy_users            | OFF             |
| sha256_password_public_key_path        | public_key.pem  |
| validate_password_check_user_name      | OFF             |
| validate_password_dictionary_file      |                 |
| validate_password_length               | 8               |
| validate_password_mixed_case_count     | 1               |
| validate_password_number_count         | 1               |
| validate_password_policy               | MEDIUM          |
| validate_password_special_char_count   | 1               |
+----------------------------------------+-----------------+
mysql> set global validate_password_length=6;   //修改密码长度
mysql> set global validate_password_policy=0;    //修改密码策略
mysql> alter user root@"localhost" identified by "123qqq...A";

9.永久修改密码策略

[root@localhost ~]# vim /etc/my.cnf       
[mysqld]
validate_password_length=6
validate_password_policy=0

二、数据库基本管理

1.客户端连接mysql服务的方法

  • 命令行
  • Web页面
  • 安装图形软件
  • 编写脚本(php、java、python…)

2.使用mysql命令

  • Mysql -h服务器IP -u用户名 -p密码 数据库名 //直接连接至某个数据库

  • Quit或exit //退出数据库

3.数据存储流程

- 连接数据库服务器
 - 建库              //类似于文件夹
 - 建表             //类似于文件
 - 插入记录         //类似于文件内容
- 断开连接

4.Mysql管理环境

  • SQL命令使用规则
    • sql命令不区分字母大小写(密码、变量值除外)
    • 每条sql命令以 ; 结束
    • 默认命令不支持Tab键自动补齐
    • \c终止sql命令

5.常用的Sql命令分类

  • 管理数据库使用SQL(结构化查询语言)
    • DDL 数据库定义语言 如:create、alter、drop
    • DML 数据库操作语言 如:insert、update、delete
    • DCL 数据库控制语言 如:grant、revoke
    • DTL 数据库实物语言 如:commit、rollback、savepoint

6.Mysql相关目录及配置文件:

  • 主配置文件 /etc/my.cnf
  • 数据库目录 /var/lib/mysql
  • 默认端口号 3306
  • 服务名 mysqld
  • 传输协议 TCP
  • 进程所有者 mysql
  • 进程所属组 mysql
  • 错误日志文件 /var/log/mysqld.log

三、Mysql基本操作

库管理命令

  • 库 类似于文件夹,用来存储表
   -show  databases;            //显示已有的库
   -select  user();             //显示连接用户
   -use 库名;                   //切换库
   -select database();         //显示当前所在的库
   -create database 库名;      //创建新库
   -show tables;              //显示已有的表
   -drop database 库名;       //删除库

库名 命名规则

  • 仅可以使用数字、字母、下划线、不能纯数字
  • 区分字母大小写,具有唯一性
  • 不可使用指令关键字、特殊字符
例:
 musql> create database DB1;
 Query OK,1 row affected (0.06sec)
 musql> create database db1;
 Query OK,1 row affected (0.03sec)

—表管理命令

1.表存储数据的文件

Mysql >create table 库名.表名(字段名1 类型(宽度),字段名2 类型(宽度), ......)DEFAULT CHARSET=utf8;      //指定中文字符集,可以给字符段赋值中文
[root@localhost ~]# LANG="zh_CN.UTF-8"    //设置表记录可以写中文
例:
 mysql> create table db1.学生表(姓名 char(10), 家庭地址 char(20))    DEFAULT CHARSET=utf8;
 Mysql> create table db1.test(name char(15),home char(20));   //创建在db1数据库中创建表 test,字段1为name,类型是char,宽度是15

2.表类似于文件

  • desc 库名.表名; //查看表结构
  • drop table 库名.表名; //删除表
例:
mysql> desc db1.test;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name  | char(8)     | YES  |     | NULL    |       |
| home  | varchar(25) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

3.记录类似于文件里的行

 -select * from 库名.表名;                 //查看表记录
 -insert into 库名.表名 values(值列表);    //插入表记录
 -update 库名.表名 set 字段=值;           //修改表记录
 -delete from 表名;                    //删除表记录
[root@localhost ~]# mysql -uroot -p123qqq...A
mysql> create table db1.stuinfo(name var(8),country var(10));
mysql> insert into db1.stuinfo values(“jim”,”usa”),(“lilei”,”china”);
mysql> select  * from  db1.stuinfo;
+-------+---------+
| name  | country |
+-------+---------+
| jim   | usa     |
| lelei | china   |
+-------+---------+
mysql >update db1.stuinfo set homeaddr=”beijing”;
mysql> select * from db1.stuinfo;
+-------+---------+
| name  | country |
+-------+---------+
| jim   | beijing |
| lelei | beijing |
+-------+---------+
发布了71 篇原创文章 · 获赞 12 · 访问量 8071

猜你喜欢

转载自blog.csdn.net/qq_44895681/article/details/104985936