【无标题】

复制代码
yum -y install mysql-server mysql
systemctl start mysqld.service
ps -C mysqld
ss -ntulp | grep 3306
systemctl status mysqld.service
systemctl enable mysqld

# 主配置文件
[root@mysql50 ~]# cat /etc/my.cnf.d/mysql-server.cnf 
[mysqld]                                #MySQL服务进程
datadir=/var/lib/mysql                  #数据文件的存储目录(数据库目录)
socket=/var/lib/mysql/mysql.sock        #本地连接MySQL服务器需要sock文件
log-error=/var/log/mysql/mysqld.log     #错误日志文件位置
pid-file=/run/mysqld/mysqld.pid         #服务进程ID文件位置

# 端口号
3306

# 传输协议
TCP

# 进程所有者、所属组
mysql 

命令格式

mysql -h -P -u -p

选项:

-h 数据库服务器ip地址

-P 数据库服务端口

-u 用户名

-p 密码

基本操作

mysql> select version(); #查看服务软件版本

mysql> select user(); #查看登陆用户

mysql> show databases; #查看已有库

mysql> use 库名; #切换库

mysql> select database(); #查看当前所在库

mysql> show tables; #查看库里已有表

mysql> exit; #断开连接

密码管理

密码的设置与修改

操作系统管理员有此权限

命令格式

设置密码

]# mysqladmin -uroot -hlocalhost -p password "新密码"(端口默认3306,-P这里忽略)

修改密码

]# mysqladmin -uroot -hlocalhost -p旧密码 password "新密码"(端口默认3306,-P这里忽略)

隐藏密码修改

]# mysqladmin -uroot -hlocalhost -P3306 -p password

Enter password: #输入旧密码

New password: #输入新密码

Confirm new password: #再次输入新密码

密码破解

配置服务可以无密码登录

复制代码
[root@mysql50 ~]# vim /etc/my.cnf.d/mysql-server.cnf 
[mysqld]
......
skip-grant-tables    #添加这行(跳过授权表)
......

删除不知道的密码

复制代码
mysql> desc mysql.user;    #查看表头名
mysql> select host,user,authentication_string from mysql.user;    #查看表头的值
mysql> update mysql.user set authentication_string="" where host="localhost" and user="root";    #删除密码
mysql> select host,user,authentication_string from mysql.user;
mysql> flush privileges;    #刷新权限(确保删除生效)

配置服务需要密码登录

复制代码
[root@mysql50 ~]# vim /etc/my.cnf.d/mysql-server.cnf 
[mysqld]
......
skip-grant-tables    #删除此行 需要密码登录
......

登录后设置新密码

复制代码
mysql> alter user root@"localhost" identified by "123456";    #设置新密码

使用新密码登录

复制代码
[root@mysql50 ~]# mysql -uroot -p123456

配置步骤

准备phpmyadmin软件运行环境(运行nginx服务,且配置服务可以解释php脚本)

安装依赖的软件包

复制代码
[root@mysql50 ~]# yum -y install gcc make pcre-devel 

安装源码的nginx软件

复制代码
[root@mysql50 ~]# tar -xf nginx-1.22.1.tar.gz
[root@mysql50 ~]# cd nginx-1.22.1/
[root@mysql50 nginx-1.22.1]# ./configure 
配置错误
./configure: error: the HTTP gzip module requires the zlib library.
[root@mysql50 nginx-1.22.1]# yum -y install zlib-devel
[root@mysql50 nginx-1.22.1]# ./configure 
[root@mysql50 nginx-1.22.1]# make && make install
[root@mysql50 nginx-1.22.1]# ls /usr/local/nginx/
conf  html  logs  sbin

修改配置文件实现动静分离

启动nginx服务

复制代码
[root@mysql50 nginx]# /usr/local/nginx/sbin/nginx -t
[root@mysql50 nginx]# /usr/local/nginx/sbin/nginx 

安装解释php代码的php-fpm服务软件

复制代码
[root@mysql50 nginx]# yum -y install php php-mysqlnd php-fpm php-devel php-json

修改php-fpm服务软件

复制代码
[root@mysql50 nginx]# vim /etc/php-fpm.d/www.conf 
;listen = /run/php-fpm/www.sock
listen = 127.0.0.1:9000

启动php-fpm服务软件

复制代码
[root@mysql50 nginx]# systemctl start php-fpm

编写php代码,测试环境

复制代码
[root@mysql50 nginx]# vim html/a.php
<?php
$i = 100 ;
echo $i ;
echo "\n" ;
?>
[root@mysql50 nginx]# curl http://localhost/a.php
100

安装phpmyadmin软件

解压软件

复制代码
[root@mysql50 ~]# yum -y install unzip
[root@mysql50 ~]# unzip phpMyAdmin-5.2.1-all-languages.zip 

把解压目录拷贝到网页目录下

复制代码
[root@mysql50 ~]# mv phpMyAdmin-5.2.1-all-languages /usr/local/nginx/html/phpmyadmin
[root@mysql50 ~]# cd /usr/local/nginx/html/phpmyadmin/
[root@mysql50 phpmyadmin]# cp config.sample.inc.php config.inc.php

创建软件的主配置文件并定义管理的数据库服务器

复制代码
[root@mysql50 phpmyadmin]# vim config.inc.php
$cfg['Servers'][$i]['host'] = 'localhost';

客户端打开浏览器访问软件,对数据库服务器做管理

基础查询

root@mysql50 \~\]# mysql -uroot -p123456 \< /root/tarena.sql mysql\> show databases; +--------------------+ \| Database \| +--------------------+ \| information_schema \| \| mysql \| \| performance_schema \| \| sys \| \| tarena \| +--------------------+ 5 rows in set (0.00 sec) mysql\> use tarena; mysql\> show tables; +------------------+ \| Tables_in_tarena \| +------------------+ \| departments \| \| employees \| \| salary \| \| user \| +------------------+ 4 rows in set (0.00 sec) select语法 语法格式1:select 字段列表 from 库名.表名; 语法格式2:select 字段列表 from 库名.表名 where 筛选条件; mysql\> select name from tarena.user; #查看一个表头 mysql\> select name,uid from tarena.user; #查看多个表头 mysql\> select \* from tarena.user; #查看所有表头 加条件查看 mysql\> select \* from tarena.user where name="root"; mysql\> select name from tarena.user where uid=2; 语法规范 必须遵守,命令才会执行 \\c终止sql命令 默认命令不支持tab键补全 每条SQL命令以;或\\G结束 每条命令可以根据需要进行缩进或换行 SQL命令不区分字母大小写(密码、变量值除外) 筛选条件 数值比较 符号两边必须是数字或数值类型的表头 |------|-------|----------| | 比较符号 | 说明 | 例子 | | = | 相等 | uid=3 | | \> | 大于 | uid\>3 | | \>= | 大于或等于 | uid\>=3 | | \< | 小于 | uid\<3 | | \<= | 小于或等于 | uid\<=3 | | != | 不相等 | uid != 3 | # 查看第3行的行号、用户名、uid、gid 四个表头的值 mysql> select id,name,uid,gid from user where id=3; +----+--------+------+------+ | id | name | uid | gid | +----+--------+------+------+ | 3 | daemon | 2 | 2 | +----+--------+------+------+ 1 row in set (0.00 sec) # 查看前2行的行号用户名、uid、gid 四个表头的值 mysql> select id,name,uid,gid from user where id<3; +----+------+------+------+ | id | name | uid | gid | +----+------+------+------+ | 1 | root | 0 | 0 | | 2 | bin | 1 | 1 | +----+------+------+------+ 2 rows in set (0.00 sec) # 查看前3行的行号、用户名、uid、gid 四个表头的值 mysql> select id,name,uid,gid from user where id<=3; +----+--------+------+------+ | id | name | uid | gid | +----+--------+------+------+ | 1 | root | 0 | 0 | | 2 | bin | 1 | 1 | | 3 | daemon | 2 | 2 | +----+--------+------+------+ 3 rows in set (0.00 sec) # 查看前uid号大于6000的行号、用户名、uid、gid 四个表头的值 mysql> select id,name,uid,gid from user where uid>6000; +----+-----------+-------+-------+ | id | name | uid | gid | +----+-----------+-------+-------+ | 22 | nfsnobody | 65534 | 65534 | +----+-----------+-------+-------+ 1 row in set (0.00 sec) # 查看前uid号大于等于1000的行号、用户名、uid、gid 四个表头的值 mysql> select id,name,uid,gid from user where uid>=1000; +----+-----------+-------+-------+ | id | name | uid | gid | +----+-----------+-------+-------+ | 22 | nfsnobody | 65534 | 65534 | | 24 | plj | 1000 | 1000 | +----+-----------+-------+-------+ 2 rows in set (0.00 sec) # 查看uid号和gid号相同的行 仅显示行号、用户名、uid、gid 四个表头的值 mysql> select id,name,uid,gid from user where uid=gid; +----+-----------------+-------+-------+ | id | name | uid | gid | +----+-----------------+-------+-------+ | 1 | root | 0 | 0 | | 2 | bin | 1 | 1 | | 3 | daemon | 2 | 2 | | 13 | nobody | 99 | 99 | | 14 | systemd-network | 192 | 192 | | 15 | dbus | 81 | 81 | | 17 | sshd | 74 | 74 | | 18 | postfix | 89 | 89 | | 20 | rpc | 32 | 32 | | 21 | rpcuser | 29 | 29 | | 22 | nfsnobody | 65534 | 65534 | | 23 | haproxy | 188 | 188 | | 24 | plj | 1000 | 1000 | | 25 | apache | 48 | 48 | | 26 | mysql | 27 | 27 | +----+-----------------+-------+-------+ 15 rows in set (0.00 sec) # 查看uid号和gid号不一样的行 仅显示行号、用户名、uid、gid 四个表头的值 mysql> select id,name,uid,gid from user where uid != gid; +----+----------+------+------+ | id | name | uid | gid | +----+----------+------+------+ | 4 | adm | 3 | 4 | | 5 | lp | 4 | 7 | | 6 | sync | 5 | 0 | | 7 | shutdown | 6 | 0 | | 8 | halt | 7 | 0 | | 9 | mail | 8 | 12 | | 10 | operator | 11 | 0 | | 11 | games | 12 | 100 | | 12 | ftp | 14 | 50 | | 16 | polkitd | 999 | 998 | | 19 | chrony | 998 | 996 | +----+----------+------+------+ 11 rows in set (0.00 sec) 范围匹配 匹配范围内的任意一个值即可 |-------------------|------------| | 比较符号 | 说明 | | in(值列表) | 在...里 | | not in(值列表) | 不在...里 | | between 数字 and 数字 | 在...和...之间 | # uid号表头的值 是 (1 , 3 , 5 , 7) 中的任意一个即可 mysql> select name,uid from user where uid in (1,3,5,7); +------+------+ | name | uid | +------+------+ | bin | 1 | | adm | 3 | | sync | 5 | | halt | 7 | +------+------+ 4 rows in set (0.00 sec) # shell 表头的的值 不是 "/bin/bash"或"/sbin/nologin" 即可 mysql> select name,shell from user where shell not in ("/bin/bash","/sbin/nologin") -> ; +----------+----------------+ | name | shell | +----------+----------------+ | sync | /bin/sync | | shutdown | /sbin/shutdown | | halt | /sbin/halt | | mysql | /bin/false | +----------+----------------+ 4 rows in set (0.00 sec) # id表头的值 在 10 到 20 之间即可 包括 10 和 20 本身 mysql> select id,name,uid from user where id between 10 and 20; +----+-----------------+------+ | id | name | uid | +----+-----------------+------+ | 10 | operator | 11 | | 11 | games | 12 | | 12 | ftp | 14 | | 13 | nobody | 99 | | 14 | systemd-network | 192 | | 15 | dbus | 81 | | 16 | polkitd | 999 | | 17 | sshd | 74 | | 18 | postfix | 89 | | 19 | chrony | 998 | | 20 | rpc | 32 | +----+-----------------+------+ 11 rows in set (0.00 sec) 模糊匹配 用法 where 字段名 like "通配符"; _ 表示1个字符 % 表示0到多个字符 # 找名字必须是3个字符的(没有空格挨着敲) mysql> select name from user where name like "___"; +------+ | name | +------+ | bin | | adm | | ftp | | rpc | | plj | | bob | +------+ 6 rows in set (0.00 sec) # 找名字必须是4个字符的(没有空格挨着敲) mysql> select name from user where name like "____"; +------+ | name | +------+ | root | | sync | | halt | | mail | | dbus | | sshd | +------+ 6 rows in set (0.00 sec) # 找名字以字母a开头的(没有空格挨着敲) mysql> select name from user where name like "a%" -> ; +--------+ | name | +--------+ | adm | | apache | +--------+ 2 rows in set (0.00 sec) # 查找名字至少是4个字符的表达式 mysql> select name from user where name like "%____%"; mysql> select name from user where name like "__%__"; mysql> select name from user where name like "____%"; mysql> select name from user where name like "%____"; 正则匹配 用法: where 字段名 regexp "正则表达式"; 元字符: \^ 行首 $ 行尾 . 1个字符 \[ \] 范围内 \* 前边表达式出现零次或多次 \| 或 # 插入数据 mysql> insert into user(name) values("yaya"); mysql> insert into user(name) values("yaya1"); mysql> insert into user(name) values("6yaya"); # 查看名字里有数字的 mysql> select name from user where name regexp "[0-9]"; +-------+ | name | +-------+ | yaya1 | | 6yaya | +-------+ 2 rows in set (0.00 sec) # 查看名字以数字开头 mysql> select name from user where name regexp "^[0-9]"; +-------+ | name | +-------+ | 6yaya | +-------+ 1 row in set (0.00 sec) # 查看名字以数字结尾 mysql> select name from user where name regexp "[0-9]$"; +-------+ | name | +-------+ | yaya1 | +-------+ 1 row in set (0.00 sec) # 查看名字以r开头 mysql> select name from user where name regexp "^r"; +---------+ | name | +---------+ | root | | rpc | | rpcuser | +---------+ 3 rows in set (0.00 sec) # 查看名字以t结尾 mysql> select name from user where name regexp "t$"; +------+ | name | +------+ | root | | halt | +------+ 2 rows in set (0.00 sec) # 查看名字以r开头或t结尾 mysql> select name from user where name regexp "^r|t$"; +---------+ | name | +---------+ | root | | halt | | rpc | | rpcuser | +---------+ 4 rows in set (0.00 sec) # 名字r开头t结尾 mysql> select name from user where name regexp "^r.*t$"; +------+ | name | +------+ | root | +------+ 1 row in set (0.00 sec) 别名/去重/合并 给查看的列定义新的名字 多行数据相同时仅显示一遍 逻辑匹配 有多个筛选条件 多个筛选条件 必须同时成立 逻辑与 and \&\& 多个筛选条件 某个条件成立即可 逻辑或 or \|\| 逻辑非 取反 not ! # 逻辑非例子,查看解释器不是/bin/bash 的 mysql> select name,shell from user where shell != "/bin/bash"; # not 也是取反 要放在表达式的前边 mysql> select name,shell from user where not shell="/bin/bash"; # id值不在 10 到 20 之间 mysql> select id,name from user where not id between 10 and 20; # 逻辑与 例子 mysql> select name,uid from user where name="root" and uid=1; mysql> select name,uid from user where name="root" and uid=0; +------+------+ | name | uid | +------+------+ | root | 0 | +------+------+ 1 row in set (0.00 sec) # 逻辑或 例子 mysql> select name,uid from user where name="root" or name="bin" or uid=1; +------+------+ | name | uid | +------+------+ | root | 0 | | bin | 1 | +------+------+ 2 rows in set (0.00 sec) 提高优先级 () 多个判断条件时使用and的优先级高于or mysql> select 2+3*5; # 使用默认计算顺序 先乘除后加减 +-------+ | 2+3*5 | +-------+ | 17 | +-------+ 1 row in set (0.00 sec) mysql> select (2+3)*5; # 先加法再乘法 +---------+ | (2+3)*5 | +---------+ | 25 | +---------+ 1 row in set (0.00 sec) 逻辑匹配什么时候需要加() 逻辑与and 优先级高于逻辑或 or 如果在筛选条件里既有and 又有 or 默认先判断and 再判断or # 没加() 的查询结果 mysql> select name,uid from user -> where name="root" or name="bin" and uid=1; +------+------+ | name | uid | +------+------+ | root | 0 | | bin | 1 | +------+------+ 2 rows in set (0.00 sec) # 加()的查询结果 mysql> select name,uid from user where (name="root" or name="bin") and uid=1; +------+------+ | name | uid | +------+------+ | bin | 1 | +------+------+ 1 row in set (0.00 sec) 字符比较 = 相等比较 != 不相等比较 # 查看表里是否有名字叫apache的用户 mysql> select name from user where name="apache"; +--------+ | name | +--------+ | apache | +--------+ 1 row in set (0.00 sec) # 输出解释器不是/bin/bash的用户名 及使用的解释器 mysql> select name,shell from user where shell != "/bin/bash"; +-----------------+----------------+ | name | shell | +-----------------+----------------+ | bin | /sbin/nologin | | daemon | /sbin/nologin | | adm | /sbin/nologin | | lp | /sbin/nologin | | sync | /bin/sync | | shutdown | /sbin/shutdown | | halt | /sbin/halt | | mail | /sbin/nologin | | operator | /sbin/nologin | | games | /sbin/nologin | | ftp | /sbin/nologin | | nobody | /sbin/nologin | | systemd-network | /sbin/nologin | | dbus | /sbin/nologin | | polkitd | /sbin/nologin | | sshd | /sbin/nologin | | postfix | /sbin/nologin | | chrony | /sbin/nologin | | rpc | /sbin/nologin | | rpcuser | /sbin/nologin | | nfsnobody | /sbin/nologin | | haproxy | /sbin/nologin | | apache | /sbin/nologin | | mysql | /bin/false | +-----------------+----------------+ 24 rows in set (0.00 sec) 空 表头下没有数据 使用 is null 非空 表头下有数据 使用 is not null mysql服务 使用关键字null或NULL表示表头没有数据 # 添加新行 仅给行中的id 表头和name表头赋值 mysql> insert into user(id,name) values(71,""); # 零个字符 mysql> insert into user(id,name) values(72,"null"); # 普通字母 mysql> insert into user(id,name) values(73,NULL); # 表示空 mysql> insert into user(id,name) values(74,null); # 表示空 # 查看id表头值大于等于71 的行 仅显示行中 id表头 和 name 表头的值 mysql> select id,name from user where id>=71; +----+------+ | id | name | +----+------+ | 71 | | | 72 | null | | 73 | NULL | | 74 | NULL | +----+------+ 4 rows in set (0.00 sec) # 查看name 表头没有数据的行 仅显示行中id表头 和 naeme 表头的值 mysql> select id,name from user where name is null; +----+------+ | id | name | +----+------+ | 73 | NULL | | 74 | NULL | +----+------+ 2 rows in set (0.00 sec) # 查看name 表头是0个字符的行, 仅显示行中id表头 和 naeme 表头的值 mysql> select id,name from user where name=""; +----+------+ | id | name | +----+------+ | 71 | | +----+------+ 1 row in set (0.00 sec) # 查看name 表头值是null的行, 仅显示行中id表头 和 naeme 表头的值 mysql> select id,name from user where name="null"; +----+------+ | id | name | +----+------+ | 72 | null | +----+------+ 1 row in set (0.01 sec) # 查看name 表头有数据的行, 仅显示行中id表头 和 name 表头的值 mysql> select id,name from user where name is not null;

相关推荐
InnovatorX1 天前
Linux 下 MySQL 8 搭建教程
linux·mysql·adb
jc0803kevin2 天前
docker mysql 默认配置文件路径
mysql·adb·docker
Vesper632 天前
【Android】‘adb shell input text‘ 模拟器输入文本工具使用教程
android·adb
Code额2 天前
MySQL的事务机制
android·mysql·adb
运维潇哥3 天前
二进制安装指定版本的MariaDBv10.11.6
adb
爱做梦Di猪3 天前
mysql安装与使用
android·mysql·adb
雾里看山3 天前
【MySQL】用户管理和权限
android·mysql·adb
程序猿陌名!3 天前
ADB报错:daemon not running...
adb
堕落年代4 天前
使用MySQL的Binlog来同步数据到ES当中
mysql·elasticsearch·adb
m0_748235074 天前
Python高级之操作Mysql
python·mysql·adb