2、mysql命令
mysql命令
目录
[toc]
容器起docker
案例:docker容器起mysql
$ docker run --rm -it --platform=linux/amd64 --network mysql_default mysql:5.7 mysql -h proxy -P 1999 -u root --skip-ssl
# ......
mysql> CREATE DATABASE test;
Query OK, 1 row affected (0.00 sec)
mysql> USE test;
Database changed
mysql> CREATE TABLE test ( text VARCHAR(255) );
Query OK, 0 rows affected (0.01 sec)
mysql> SELECT COUNT(*) FROM test;
+----------+
| COUNT(*) |
+----------+
| 0 |
+----------+
1 row in set (0.01 sec)
mysql> INSERT INTO test VALUES ('hello, world!');
Query OK, 1 row affected (0.00 sec)
mysql> SELECT COUNT(*) FROM test;
+----------+
| COUNT(*) |
+----------+
| 1 |
+----------+
1 row in set (0.00 sec)
mysql> exit
Bye
案例:docker-compose起mysql:5.7
docker-compose.yaml
version: '3'
services:
piwigo:
image: lscr.io/linuxserver/piwigo:latest
container_name: piwigo
ports:
- "8080:80" # 端口映射,官方默认80端口,前面可自己修改成VPS未被占用端口
depends_on:
- db
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai # 时区,中国时区为Asia/Shanghai
volumes:
- ./config:/config
- ./gallery:/gallery
db:
image: mysql:5.7
container_name: mysql_piwigo
environment:
MYSQL_ROOT_PASSWORD: SSbw5pK_bSDvqIXIEeDHPg # root用户密码
MYSQL_DATABASE: piwigo # 数据库名
MYSQL_USER: piwigo # 用户名
MYSQL_PASSWORD: xO4G-U28etWMNWoyx9OtFg # piwigo用户数据库密码
volumes:
- ./mysql_data:/var/lib/mysql
volumes:
mysql_data:
config:
gallery:
- 运行项目
cd /root/piwigo
docker-compose pull
docker-compose up -d
#查看
[root@docusaurus-wiki piwigo]#docker-compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
mysql_piwigo mysql:5.7 "docker-entrypoint.s…" db 12 minutes ago Up 12 minutes 3306/tcp, 33060/tcp
piwigo lscr.io/linuxserver/piwigo:latest "/init" piwigo 12 minutes ago Up 12 minutes 443/tcp, 0.0.0.0:8080->80/tcp
[root@docusaurus-wiki piwigo]#
k8s里部署mysql
# mysql.yaml
apiVersion: v1
kind: Service
metadata:
name: mysql
namespace: kube-example
labels:
app: mysql
spec:
ports:
- port: 3306
targetPort: dbport
selector:
app: mysql
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: mysql
namespace: kube-example
labels:
app: mysql
spec:
selector:
matchLabels:
app: mysql
template:
metadata:
labels:
app: mysql
spec:
containers:
- name: mysql
image: mysql:5.7
imagePullPolicy: IfNotPresent
args: # 新版本镜像有更新,需要使用下面的认证插件环境变量配置才会生效
- --default_authentication_plugin=mysql_native_password
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
ports:
- containerPort: 3306
name: dbport
volumeMounts:
- name: mysql-data
mountPath: /var/lib/mysql
env:
- name: MYSQL_ROOT_PASSWORD
value: rootPassW0rd
- name: MYSQL_DATABASE
value: wordpress
- name: MYSQL_USER
value: wordpress
- name: MYSQL_PASSWORD
value: wordpress
volumeClaimTemplates:
- metadata:
name: mysql-data
spec:
accessModes: ["ReadWriteOnce"]
storageClassName: nfs-client
resources:
requests:
storage: 1Gi
wordpress.yaml
# wordpress.yaml
apiVersion: v1
kind: Service
metadata:
name: wordpress
namespace: kube-example
labels:
app: wordpress
spec:
selector:
app: wordpress
type: NodePort
ports:
- name: web
port: 80
targetPort: wdport
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: wordpress
namespace: kube-example
labels:
app: wordpress
spec:
replicas: 2
selector:
matchLabels:
app: wordpress
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
template:
metadata:
labels:
app: wordpress
spec:
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution: # 软策略
- weight: 1
podAffinityTerm:
topologyKey: kubernetes.io/hostname
labelSelector:
matchExpressions:
- key: app
operator: In
values:
- wordpress
containers:
- name: wordpress
image: wordpress:6.4.3-apache
ports:
- containerPort: 80
name: wdport
readinessProbe:
tcpSocket:
port: 80
initialDelaySeconds: 5
periodSeconds: 5
lifecycle:
preStop:
exec:
command: ["/bin/bash", "-c", "sleep 20"]
resources:
limits:
cpu: 150m
memory: 150Mi
requests:
cpu: 150m
memory: 150Mi
volumeMounts:
- name: wordpress-data
mountPath: /var/www/html
env:
- name: WORDPRESS_DB_HOST
value: mysql:3306
- name: WORDPRESS_DB_USER
value: wordpress
- name: WORDPRESS_DB_PASSWORD
valueFrom:
secretKeyRef:
name: wordpress-db-pwd
key: dbpwd
volumes:
- name: wordpress-data
persistentVolumeClaim:
claimName: wordpress-pvc
---
# pdb.yaml
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: wordpress-pdb
namespace: kube-example
spec:
maxUnavailable: 1
selector:
matchLabels:
app: wordpress
mysql常用命令
命令汇总
mysql -uroot -ppassword #登录数据库
show databases; #查看数据库
#创建数据库
CREATE DATABASE|SCHEMA [IF NOT EXISTS] 'DB_NAME'
CHARACTER SET 'character set name'
COLLATE 'collate name';
或者
CREATE DATABASE|SCHEMA [IF NOT EXISTS] 'DB_NAME';
或者
CREATE DATABASE|SCHEMA 'DB_NAME';
#查看创建的数据库字符集
show create database db1;
#查看当前告警;
show warnings;
#修改数据库的字符集
ALTER DATABASE DB_NAME character set utf8;
mysql test #直接指定对应数据库
use mysql; #进入数据库
show tables; #显示当前数据库的表列表:
#查看表内容
select *from t1;
等价于
select * from t1;
#查看用户名和密码
select Host,User,Password from user; #查看数据库user表
==等价于
SELECT User,Host,Password FROM user; ##注意:关键字这里的大小写都是可以的哦;
==等价于
select user,host,password from user;
#select user,host,password,authentication_string from user; #密码可能存放在这2个字段,和数据版本有关;
desc user; #查看某张表所有列的内容
#查看当前用户
\s
或者
select User();
#加载授权表:立即生效的。
SHOW CHARACTER SET; #查看支持所有的字符集
show variables like 'character%'; #查看当前字符集的使用情况
show COLLATION; #查看支持所有排序规则
SHOW VARIABLES LIKE 'collation%'; #查看当前使用的排序规则
SELECT VERSION(); #查看当前mysql版本
或者
\s #也行的
mysqld --version
#查看当前连接数据库的端口
show variables like 'PORT';
或者
show variables like 'port';
#删除数据库
DROP DATABASE|SCHEMA [IF EXISTS] 'DB_NAME';
\q #退出数据库 ==exit
#导入sql数据
mysql < hellodb_innodb.sql
show processlist; #查看mysql线程
登录数据库、查看当前数据库数量
#进入pod测试mysql应用
mysql -uroot -ppassword #登录数据库
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.51 MySQL Community Server (GPL)
Copyright (c) 2000, 2021, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+---------------------+
| Database |
+---------------------+
| information_schema |
| #mysql50#lost+found |
| mysql |
| performance_schema |
+---------------------+
4 rows in set (0.05 sec)
mysql> create database longhorn;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+---------------------+
| Database |
+---------------------+
| information_schema |
| longhorn |
| #mysql50#lost+found |
| mysql |
| performance_schema |
+---------------------+
5 rows in set (0.00 sec)
mysql> exit
Bye
[root@master1 ~]#
使用某个数据库
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.01 sec)
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql>
显示当前数据库的表列表
MariaDB [mysql]> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| column_stats |
| columns_priv |
| db |
| event |
| func |
| general_log |
| global_priv |
| gtid_slave_pos |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| index_stats |
| innodb_index_stats |
| innodb_table_stats |
| plugin |
| proc |
| procs_priv |
| proxies_priv |
| roles_mapping |
| servers |
| slow_log |
| table_stats |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| transaction_registry |
| user |
+---------------------------+
31 rows in set (0.001 sec)
MariaDB [mysql]>
查看数据库user表
mysql> select Host,User,Password from user;
+-----------+------+-------------------------------------------+
| Host | User | Password |
+-----------+------+-------------------------------------------+
| localhost | root | *ABE374A5F247C93961AD4726B39A5A84FA3BC3B1 |
| 127.0.0.1 | root | *ABE374A5F247C93961AD4726B39A5A84FA3BC3B1 |
| ::1 | root | *ABE374A5F247C93961AD4726B39A5A84FA3BC3B1 |
+-----------+------+-------------------------------------------+
3 rows in set (0.00 sec)
mysql>
mysql> SELECT User,Host,Password FROM user;
+------+-----------+-------------------------------------------+
| User | Host | Password |
+------+-----------+-------------------------------------------+
| root | localhost | *ABE374A5F247C93961AD4726B39A5A84FA3BC3B1 |
| root | 127.0.0.1 | *ABE374A5F247C93961AD4726B39A5A84FA3BC3B1 |
| root | ::1 | *ABE374A5F247C93961AD4726B39A5A84FA3BC3B1 |
+------+-----------+-------------------------------------------+
3 rows in set (0.00 sec)
mysql>
注意:
看某张表的内容:
MariaDB [mysql]> select * from user;
为什么会显示这样呢?
因为这个张表的列太多了,换行导致的。
只查看某2列内容:
MariaDB [mysql]> select user,host from user;
+-------------+-------------+
| User | Host |
+-------------+-------------+
| | localhost |
| mariadb.sys | localhost |
| mysql | localhost |
| root | localhost |
| | vm-template |
+-------------+-------------+
5 rows in set (0.001 sec)
MariaDB [mysql]>
案例:查看用户名、密码
mysql> select user,host,password from user;
+-----------+------+-------------------------------------------+
| Host | User | Password |
+-----------+------+-------------------------------------------+
| localhost | root | *ABE374A5F247C93961AD4726B39A5A84FA3BC3B1 |
| 127.0.0.1 | root | *ABE374A5F247C93961AD4726B39A5A84FA3BC3B1 |
| ::1 | root | *ABE374A5F247C93961AD4726B39A5A84FA3BC3B1 |
+-----------+------+-------------------------------------------+
3 rows in set (0.00 sec)
- 注意
查看用户密码:
MariaDB [mysql]> select user,host,password,authentication_string from user;
+-------------+-------------+----------+-----------------------+
| User | Host | Password | authentication_string |
+-------------+-------------+----------+-----------------------+
| mariadb.sys | localhost | | |
| root | localhost | invalid | invalid |
| mysql | localhost | invalid | invalid |
| | localhost | | |
| | vm-template | | |
+-------------+-------------+----------+-----------------------+
5 rows in set (0.001 sec)
MariaDB [mysql]>
#password,authentication_string 密码可能存放在这2个字段,和数据版本有关;