mysql

文件系统管理数据存在的问题

1、数据冗余性和不一致性

2、数据访问

3、数据相对独立

4、完整性和原子性问题

5、并发访问异常

6、安全性问题

数据库:指的是以一定方式储存在一起,能为多个用户共享,具有尽可能小的冗余度的特点,是与应用程序彼此独立的数据集合。

1、实现数据共享

2、减少数据的冗余度

3、数据实现集中控制

4、数据的一致性

5、故障恢复

关系式数据库

DBMS 数据库管理系统

软件、管理数据库

层次模型  网状模型  关系模型

RDBMS 关系数据库管理系统  DBMS = RDBMS

E-R模型

ERM概念 实体关系建模

实体:实体就是指的数据对象

联系:联系代表一个或多个实体之间的联系

属性:实体的某一特性

超市: 超市名  超市地址

商品: 商品名称 商品价格

员工: 性名 性别 编号

销售: 商品 超市 销售量

创建数据库  修改数据库

SQL语句  结构化查询语言

大型共享数据库数据的关系模型

SQL发展历史

System R   DB2  SQL-SERVER  T-SQL

ORACLE  PL/SQL     ANSI

SQL 分类

数据操作语言DML:用于操作数据库对象中所包含的数据。

例如|:INSERT,  UPDATE,  DELETE语句。

数据定义语言DDL: 用于定义和管理数据对象,包括数据库,数据表等。

例如:CREATE,  DROP删除  ALTER修改数据表等。

数据查询语言DQL:用于查询数据库对象中所包含的数据。

例如: SELECT

数据控制语言DCL:是用来管理数据库的语言,包括管理权限及数据更改。

例如: GRANT授权  REVOKE删除权限

关系结构

文件系统的逻辑关系

上层:文件系统中的数据,体现成文件的形式。

底层:数据存在硬盘的数据块

中间层:文件系统

数据库的逻辑关系

上层:数据表

底层:文件

中间层:能够将文件逻辑成表的组件,存储引擎

存储引擎

MyISAM 特点:最常见,查询速度较快  缺点:不支持事务,行级锁和外键约束功能

事务:一段SQL语句的批处理,具有原子性(要么全部SQL语句都执行成功,要么全部SQL语句都执行不成功)

行级锁:InnoDB数据不能修改行级锁定的数据,其它的可以修改

表级锁:MyISAM 直接锁定整张表,要么都能修,要么都不能修改

页级锁:DBD 锁定一张表格的相邻的几组数据

约束:

域约束:某个单元格填写某种类型的数据

外建约束:约束数据正确性

InnoDB

Memory基本内存的引擎,速度快 缺点:不能永远保存数据

数据库

1、只支持一种存储引擎 ORACLE

2、支持多种存储引擎  MYSQL

数据库结构分为两大类

存储管理器

权限及完整性管理器

事务管理器

文件管理器

缓冲区管理器

查询管理器

DDL DML

查询执行引擎

数据库工作模式

单进程多线程模式

守护线程

应用线程

优化数据库性能

缓存

线程重用

硬件

SMP 对称多处理器结构

MYSQL 版本

社区版 企业版 集群版

[root@localhost ~]# mysql -u root -p123456 -h localhost -P 3306    #登陆mysql

mysql>create user you2@'localhost' identified by '123';  #设置普通本地用户 you 123456

mysql>create user you@’%’ identified by ‘123456’ #设置普通用户 you 123456  %代表任意远端地址登陆,在本地没办法登陆

mysql>set password=password('123456');    #更改root管理员的密码123456

mysql>set password for 'you'@'localhost'=password('123');    更改普通用户密码为123

mysql>drop user ppp@'%';  删除用户

mysql>drop user root@'localhost';

mysql>select user , host from mysql . user; 查看mysql的用户信息

单实例

如何找回密码:

1、停止数据库

2、修改主配件文件 vim /etc/my.cnf 加入 (skip-grant-tables 跳过授权表)

3、mysql> update mysql.user set password=password('123') where user='root'; 修改密码

4、exit 数据库

5、删除授权操作skip-grant-tables

6、service mysqld restart 重启并用新密码测试登录

登陆 mysql -uroot -p

多实例修改密码

1、停止数据库

2、修改主配件文件 vim /etc/my.cnf 加入 (skip-grant-tables 跳过授权表)

3、mysql> update mysql.user set password=password('123') where user='root'; 修改密码

4、exit 数据库

5、删除授权操作skip-grant-tables

6、service mysqld restart 重启并用新密码测试登录

登陆mysql -u root -p -S /data/3306/mysql.sock

mysql> select user,host from mysql.user; 查看数据库用户

mysql> show databases;   #查看数据库

mysql> select databases(); #查看是否进入某一个数据库

mysql> use mysql;      #切换数据表

mysql> system whoami #切换到linux下

mysql> system ls /

mysql> show tables;   #查看数据表

使用help查询命令

#创建数据库

mysql> create database you;

Query OK, 1 row affected (0.00 sec)

#显示数据库

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| you                |

| mysql              |

| test               |

+--------------------+

5 rows in set (0.00 sec)

mysql> SHOW create database you;

+----------+----------------------------------------------------------------+

| Database | Create Database                                                |

+----------+----------------------------------------------------------------+

| you      | CREATE DATABASE `you` /*!40100 DEFAULT CHARACTER SET latin1 */ |

+----------+----------------------------------------------------------------+

1 row in set (0.00 sec)

查看数据库字符集

mysql> show create database abc\g;

+----------+----------------------------------------------------------------+

| Database | Create Database                                                |

+----------+----------------------------------------------------------------+

| abc      | CREATE DATABASE `abc` /*!40100 DEFAULT CHARACTER SET latin1 */ |

+----------+----------------------------------------------------------------+

1 row in set (0.00 sec)

创建you_gbk数据库字符集gbk

mysql> CREATE DATABASE `you_gbk`  DEFAULT CHARACTER SET gbk;

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| you                |

| you_gbk            |

+--------------------+

7 rows in set (0.00 sec)

创建you_utf8数据库字符集utf8;

mysql> CREATE DATABASE `you_utf8`  DEFAULT CHARACTER SET utf8;

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| you_gbk            |

| you_utf8           |

+--------------------+

8 rows in set (0.00 sec)

mysql字符集包括字符集和校对规则

字符集是定义mysql字符串存储方式,校对规则定义mysql比较字符串的方式。

删除数据库

mysql> drop database test;

Query OK, 0 rows affected (0.00 sec)

查看数据库用户

mysql> select user,host from mysql.user;

+------+-----------------------+

| user | host                  |

+------+-----------------------+

| root | 127.0.0.1             |

|      | localhost             |

| root | localhost             |

|      | localhost.localdomain |

| root | localhost.localdomain |

+------+-----------------------+

5 rows in set (0.00 sec)

连接数据库

mysql> use mysql

#查看是否进入数据库

mysql> select database();

+------------+

| database() |

+------------+

| mysql      |

+------------+

1 row in set (0.00 sec)

#查看数据库用户

mysql> select user();

+----------------+

| user()         |

+----------------+

| root@localhost |

+----------------+

1 row in set (0.00 sec)

查看数据库中的表

mysql> show tables;

+---------------------------+

| Tables_in_mysql           |

+---------------------------+

| columns_priv              |

| db                        |

| event                     |

| func                      |

| general_log               |

| help_category             |

| help_keyword              |

| help_relation             |

| help_topic                |

| host                      |

| ndb_binlog_index          |

| plugin                    |

| proc                      |

| procs_priv                |

| servers                   |

| slow_log                  |

| tables_priv               |

| time_zone                 |

| time_zone_leap_second     |

| time_zone_name            |

| time_zone_transition      |

| time_zone_transition_type |

| user                      |

+---------------------------+

23 rows in set (0.00 sec)

跳出mysql操作linux

mysql> system whoami

root

mysql> system ls /

bindev   lib  miscopt   sbin     srv  usr

bootetc   lost+found  mntproc  selinux  sys  var

cgrouphome  media  netroot  sh       tmp

查看mysql数据库有多少张表

mysql> show tables from mysql;

+---------------------------+

| Tables_in_mysql           |

+---------------------------+

| columns_priv              |

| db                        |

| event                     |

| func                      |

| general_log               |

| help_category             |

| help_keyword              |

| help_relation             |

| help_topic                |

| host                      |

| ndb_binlog_index          |

| plugin                    |

| proc                      |

| procs_priv                |

| servers                   |

| slow_log                  |

| tables_priv               |

| time_zone                 |

| time_zone_leap_second     |

| time_zone_name            |

| time_zone_transition      |

| time_zone_transition_type |

| user                      |

+---------------------------+

23 rows in set (0.00 sec)

创建mysql用户

mysql> create user you@'localhost' identified by '123456';

Query OK, 0 rows affected (0.00 sec)

mysql> select user,host from mysql.user;

+------+-----------------------+

| user | host                  |

+------+-----------------------+

| root | 127.0.0.1             |

|      | localhost             |

| root | localhost             |

| you  | localhost             |

|      | localhost.localdomain |

| root | localhost.localdomain |

+------+-----------------------+

6 rows in set (0.00 sec)

删除mysql用户

mysql> drop user you1@'localhost';

Query OK, 0 rows affected (0.00 sec)

删除用户

delete from mysql.user where user='you';

delete from mysql.user where user='you'and user='root';

用户授权,先创建用户再授权用户

mysql> create user 'xiaoyou'@'localhost' identified by '123456';

mysql> grant all on *.* to 'xiaoyou'@'localhost';

Query OK, 0 rows affected (0.00 sec)

查看用户权限 USAGE只有连接的权限

mysql> show grants for oldboy@localhost\G;

*************************** 1. row ***************************

Grants for oldboy@localhost: GRANT USAGE ON *.* TO 'oldboy'@'localhost' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9'

1 row in set (0.00 sec)

ERROR:

No query specified

给某个数据库授权

mysql> create user 'youyou'@'localhost' identified by '123456';

Query OK, 0 rows affected (0.00 sec)

mysql> select user,host from mysql.user;

+---------+-----------------------+

| user    | host                  |

+---------+-----------------------+

| root    | 127.0.0.1             |

|         | localhost             |

| root    | localhost             |

| xiaoyou | localhost             |

| youyou  | localhost             |

|         | localhost.localdomain |

| root    | localhost.localdomain |

+---------+-----------------------+

8 rows in set (0.00 sec)

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| you                |

| you_abc            |

| you_gbk            |

| you_utf8           |

+--------------------+

6 rows in set (0.00 sec)

创建拉丁字符集数据库  mysql默认字符集

mysql> create database data0;

Query OK, 1 row affected (0.00 sec)

linux系统字符集 vim /etc/sysconfig/i18n  LANG="zh CN.UTF-8"

创建utf8字符集数据库

mysql> create database data2 default character set utf8 collate utf8_general_ci;

Query OK, 1 row affected (0.00 sec)

创建gbk字符集数据库

mysql> create database data3 default character set gbk collate gbk_chinese_ci;

Query OK, 1 row affected (0.00 sec)

mysql> create database youyou;

Query OK, 1 row affected (0.00 sec)

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| you                |

| you_abc            |

| you_gbk            |

| you_utf8           |

| youyou             |

+--------------------+

7 rows in set (0.00 sec)

mysql> use youyou

Database changed

mysql> grant all on youyou.* to youyou@localhost;

直接创建用户和授权

mysql> grant all on youyou.* to etian@localhost identified by '123456';

Query OK, 0 rows affected (0.00 sec)

mysql> grant create,delete,update,insert on aaa.*  to you2@localhost identified by '123456';

Query OK, 0 rows affected (0.00 sec)

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| abc                |

| anni_bgk           |

| data1              |

| data2              |

| mysql              |

+--------------------+

6 rows in set (0.00 sec)

收回授权

mysql> revoke insert on youyou.* from 'jeffrey'@'localhost';

ERROR 1141 (42000): There is no such grant defined for user 'jeffrey' on host 'localhost'

mysql> revoke insert on youyou.* from 'youyou'@'localhost';

Query OK, 0 rows affected (0.00 sec)

mysql> show grents for ww@localhost\G

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'grents for ww@localhost' at line 1

mysql> show grants for ww@localhost\G;

*************************** 1. row ***************************

Grants for ww@localhost: GRANT USAGE ON *.* TO 'ww'@'localhost' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9'

*************************** 2. row ***************************

Grants for ww@localhost: GRANT SELECT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON `wwtable`.* TO 'ww'@'localhost'

2 rows in set (0.00 sec)

查看数据库授权表

mysql> desc mysql.user;

主从mysql授权

生产环境主库用户的授权

grant select, insert, update, delete on blog.* to blog@'172.20.100.%' i dentified by '123456';

生产环境从库用户的授权

grant select on blog.* to blog@'10.0.0.%' identified by '123456';

例:

写库

blog  you456 3306 10.0.0.7

读库

blog  you456 3306 10.0.0.8

创建gbk数据库

CREATE DATABASE anni_bgk CHARACTER SET gbk collate gbk_chinese_ci;

建立测试表test

命令: create talbe test ( .....)

mysql数据库类型

1、INT[(M)]型:正常大小整数类型

2、DOUBLE[(M,D)] [ZEROFILL]型,正常大小双精密浮点数字类型

3、DATE 日期型

4、CHAR(M)型:定长字符串类型,当存储时,总是用空格填满右边到指定的长度

5、BLOB TEXT 类型,最大长度为65535个字符

6、VARCHAR型:变长字符串类型

例:

mysql> create table test(id int(4) not null primary key auto_increment, name char(20) not null);

Query OK, 0 rows affected (0.08 sec)

查看表结构

mysql> desc test;

+-------+----------+------+-----+---------+----------------+

| Field | Type     | Null | Key | Default | Extra          |

+-------+----------+------+-----+---------+----------------+

| id    | int(4)   | NO   | PRI | NULL    | auto_increment |

| name  | char(20) | NO   |     | NULL    |                |

+-------+----------+------+-----+---------+----------------+

2 rows in set (0.00 sec)

查看建表语句

mysql> show create table from test\G

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from test' at line 1

mysql> show create table test\G

*************************** 1. row ***************************

Table: test

Create Table: CREATE TABLE `test` (

`id` int(4) NOT NULL AUTO_INCREMENT,

`name` char(20) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=gbk

1 row in set (0.00 sec)

插入数据

命令:insert into 表名[(字段名1)(字段名n)] values (值1)(值2)]

mysql> desc test;

+-------+----------+------+-----+---------+----------------+

| Field | Type     | Null | Key | Default | Extra          |

+-------+----------+------+-----+---------+----------------+

| id    | int(4)   | NO   | PRI | NULL    | auto_increment |

| name  | char(20) | NO   |     | NULL    |                |

+-------+----------+------+-----+---------+----------------+

2 rows in set (0.01 sec)

mysql> insert into test values(1,'user1');

Query OK, 1 row affected (0.00 sec)

mysql> select * from test;

+----+-------+

| id | name  |

+----+-------+

|  1 | user1 |

+----+-------+

1 row in set (0.00 sec)

mysql> insert into test (id,name) values (3,'user3');

Query OK, 1 row affected (0.00 sec)

mysql> select * from test;

+----+-------+

| id | name  |

+----+-------+

|  1 | user1 |

|  2 | user2 |

|  3 | user3 |

+----+-------+

3 rows in set (0.00 sec)

mysql> insert into test(name) values('user4')

-> ;

Query OK, 1 row affected (0.00 sec)

mysql> select * from test;

+----+-------+

| id | name  |

+----+-------+

|  1 | user1 |

|  2 | user2 |

|  3 | user3 |

|  4 | user4 |

+----+-------+

4 rows in set (0.00 sec)

mysql> insert into test (id,name) values (5,'user5'),(6,'user6');

Query OK, 2 rows affected (0.00 sec)

Records: 2  Duplicates: 0  Warnings: 0

mysql> select * from test;

+----+-------+

| id | name  |

+----+-------+

|  1 | user1 |

|  2 | user2 |

|  3 | user3 |

|  4 | user4 |

|  5 | user5 |

|  6 | user6 |

+----+-------+

6 rows in set (0.00 sec)

mysql> insert into test(name) values('user7'),('user8');

Query OK, 2 rows affected (0.00 sec)

Records: 2  Duplicates: 0  Warnings: 0

mysql> select * from test;

+----+-------+

| id | name  |

+----+-------+

|  1 | user1 |

|  2 | user2 |

|  3 | user3 |

|  4 | user4 |

|  5 | user5 |

|  6 | user6 |

|  7 | user7 |

|  8 | user8 |

+----+-------+

8 rows in set (0.00 sec)

you数据库临时备份

[root@localhost mysql]# mysqldump -uroot -p'root' -P 3306 -S /var/lib/mysql/mysql.sock  -B you > /tmp/you_bak.sql

查看备份发数据库内容

[root@localhost tmp]# egrep -v "^$|#|\*|--" you_bak.sql

USE `you`;

DROP TABLE IF EXISTS `test`;

CREATE TABLE `test` (

`id` int(4) NOT NULL AUTO_INCREMENT,

`name` char(20) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=gbk;

LOCK TABLES `test` WRITE;

INSERT INTO `test` VALUES (1,'user1'),(2,'user2'),(3,'user3'),(4,'user4'),(5,'user5'),(6,'user6'),(7,'user7'),(8,'user8');

UNLOCK TABLES;

查询格式

命令:select from where

mysql> select * from test limit 0,2 ;

+----+-------+

| id | name  |

+----+-------+

|  1 | user1 |

|  2 | user2 |

+----+-------+

2 rows in set (0.00 sec)

mysql> select * from test limit 2,6 ;

+----+-------+

| id | name  |

+----+-------+

|  3 | user3 |

|  4 | user4 |

|  5 | user5 |

|  6 | user6 |

|  7 | user7 |

|  8 | user8 |

+----+-------+

6 rows in set (0.00 sec)

查倒顺的前两行

mysql> select * from test order by id desc limit 0,2 ;

+----+-------+

| id | name  |

+----+-------+

|  8 | user8 |

|  7 | user7 |

+----+-------+

2 rows in set (0.00 sec)

升顺查找

mysql> select * from test order by id asc limit 0,2 ;

+----+-------+

| id | name  |

+----+-------+

|  1 | user1 |

|  2 | user2 |

+----+-------+

2 rows in set (0.00 sec)

查询某一条name记录

mysql> select * from test where name='user2' ;

+----+-------+

| id | name  |

+----+-------+

|  2 | user2 |

+----+-------+

1 row in set (0.00 sec)

查找范围

mysql> select * from test where id >2 and id <6 ;

+----+-------+

| id | name  |

+----+-------+

|  3 | user3 |

|  4 | user4 |

|  5 | user5 |

+----+-------+

3 rows in set (0.00 sec)

字符一定要带单引号

mysql> select * from test where id > 7 or id < 2 ;

+----+-------+

| id | name  |

+----+-------+

|  1 | user1 |

|  8 | user8 |

+----+-------+

2 rows in set (0.00 sec)

两张表条件关联查询

mysql> select test.id,test.name,test1.name,test1.age from test,test1  where test.name=test1.name;

+----+-------+-------+-----+

| id | name  | name  | age |

+----+-------+-------+-----+

|  7 | user7 | user7 |  18 |

|  8 | user8 | user8 |  13 |

+----+-------+-------+-----+

2 rows in set (0.00 sec)

mysql> select test.id,test.name,test1.name,test1.age from test,test1  where test.name=test1.name and test1.name='xiaoyou';

Empty set (0.00 sec)

修改表中的数据

update 表名 set 字段=新值,... where 条件

条件一定要加 where

mysql> update test set name='xiaoyou' where name='user4';

Query OK, 1 row affected (0.00 sec)

Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from test;

+----+---------+

| id | name    |

+----+---------+

|  1 | user1   |

|  2 | user2   |

|  3 | user3   |

|  4 | xiaoyou |

|  5 | user5   |

|  6 | user6   |

|  7 | user7   |

|  8 | user8   |

+----+---------+

8 rows in set (0.01 sec)

不允许这样操作,一定要加条件

mysql> update test set name='xiaoyou';

Query OK, 7 rows affected (0.00 sec)

Rows matched: 8  Changed: 7  Warnings: 0

mysql> select * from test;

+----+---------+

| id | name    |

+----+---------+

|  1 | xiaoyou |

|  2 | xiaoyou |

|  3 | xiaoyou |

|  4 | xiaoyou |

|  5 | xiaoyou |

|  6 | xiaoyou |

|  7 | xiaoyou |

|  8 | xiaoyou |

+----+---------+

8 rows in set (0.00 sec)

恢复错复

[root@localhost mysql]# mysql -uroot -p'root' -P 3306 -S /var/lib/mysql/mysql.sock < /tmp/you_bak.sql

mysql> delete from test where id >3;

Query OK, 3 rows affected (0.01 sec)

mysql> select * from test;

+----+---------+

| id | name    |

+----+---------+

|  1 | user1   |

|  2 | user2   |

|  3 | xiaoyou |

+----+---------+

3 rows in set (0.00 sec)

mysql> delete from test where id =3;

Query OK, 1 row affected (0.00 sec)

mysql> select * from test;

+----+-------+

| id | name  |

+----+-------+

|  1 | user1 |

|  2 | user2 |

+----+-------+

2 rows in set (0.00 sec)

mysql> select * from test;

+----+-------+

| id | name  |

+----+-------+

|  1 | user1 |

|  2 | user2 |

+----+-------+

2 rows in set (0.00 sec)

删除表中的数据

mysql> delete from test where id =1;

Query OK, 1 row affected (0.00 sec)

不充许这样操作,一定要加条件

mysql> select * from test;

+----+-------+

| id | name  |

+----+-------+

|  2 | user2 |

+----+-------+

1 row in set (0.00 sec)

mysql> delete from test;

Query OK, 1 row affected (0.00 sec)

直接把表清空

mysql> truncate table test;

Query OK, 0 rows affected (0.00 sec)

mysql> select * from test;

Empty set (0.00 sec)

在表中添加字段

mysql> alter table test1 add sex int(4);

Query OK, 0 rows affected (0.01 sec)

Records: 0  Duplicates: 0  Warnings: 0

mysql> alter table test1 add agg int(4) after name;

Query OK, 0 rows affected (0.01 sec)

Records: 0  Duplicates: 0  Warnings: 0

mysql> desc test1

-> ;

+-------+----------+------+-----+---------+----------------+

| Field | Type     | Null | Key | Default | Extra          |

+-------+----------+------+-----+---------+----------------+

| id    | int(4)   | NO   | PRI | NULL    | auto_increment |

| name  | char(20) | NO   |     | NULL    |                |

| agg   | int(4)   | YES  |     | NULL    |                |

| sex   | int(4)   | YES  |     | NULL    |                |

+-------+----------+------+-----+---------+----------------+

4 rows in set (0.00 sec)

删除字段

mysql> alter table test1 drop agg;

Query OK, 0 rows affected (0.01 sec)

Records: 0  Duplicates: 0  Warnings: 0

mysql> desc test1;

+-------+----------+------+-----+---------+----------------+

| Field | Type     | Null | Key | Default | Extra          |

+-------+----------+------+-----+---------+----------------+

| id    | int(4)   | NO   | PRI | NULL    | auto_increment |

| name  | char(20) | NO   |     | NULL    |                |

| sex   | int(4)   | YES  |     | NULL    |                |

+-------+----------+------+-----+---------+----------------+

3 rows in set (0.00 sec)

修改表名

mysql> rename table test1 to test;

Query OK, 0 rows affected (0.00 sec)

mysql> show tables;

+-----------------+

| Tables_in_user1 |

+-----------------+

| test            |

+-----------------+

1 row in set (0.00 sec)

mysql>drop table test1;

mysql> insert into test(name) values('小游');

Query OK, 1 row affected (0.00 sec)

mysql> select * from test;

+----+-----------+------+

| id | name      | sex  |

+----+-----------+------+

|  1 | user1     | NULL |

|  2 | user2     | NULL |

|  3 | user3     |   16 |

|  4 | user4     |   18 |

|  5 | user5     |   19 |

|  6 | xiaohu    | NULL |

|  7 | 小游    | NULL |

+----+-----------+------+

8 rows in set (0.00 sec)

如果不支持中文,一定要先set names gbk,不然出现乱码

改服务端字符集

更改my.cnf参数

[mysqld] 一定要在mysqld下面加

default-character-set=gbk

改客户端字符集

如果不支持中文,可以在备份文件加入set names gbk还原

mysql> set names gbk;

Query OK, 0 rows affected (0.00 sec)

mysql> select * from test where name='小游';

+----+--------+------+

| id | name   | sex  |

+----+--------+------+

|  7 | 小游 | NULL |

+----+--------+------+

1 row in set (0.00 sec)

在linux命令行执行mysql里命令

[root@localhost ~]# mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock -e "show databases;"

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| test               |

| user1              |

+--------------------+

[root@localhost tmp]# egrep -v "#|\*|--|^$" /tmp/user1_bak.sql

备份数据库

mysqldump -uroot -p'root' -S /var/lib/mysql/mysql.sock -B user1 > /tmp/user1_bak.sql

还原数据库

mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock -B user1 < /tmp/user1_bak.sql

提示:

1、文件本文字符集要正确gb2312

2、文件里加入set names gbk;

3、恢复时执行mysql --defaul-character-set

mysql字符集介绍

GBK 定长 双字节 不是国际标准,支持的系统不少

UTF-8 非定长 1-4字节 广泛支持,MYSQL也使用UTF-8

latin1 MYSQL默认字符集

查看默认节符集

mysql> show variables like 'character_set%';

+--------------------------+----------------------------+

| Variable_name            | Value                      |

+--------------------------+----------------------------+

| character_set_client     | latin1                     |

| character_set_connection | latin1                     |

| character_set_database   | latin1                     |

| character_set_filesystem | binary                     |

| character_set_results    | latin1                     |

| character_set_server     | latin1                     |

| character_set_system     | utf8                       |

| character_sets_dir       | /usr/share/mysql/charsets/ |

+--------------------------+----------------------------+

8 rows in set (0.00 sec)

修改后的

mysql> set names gbk;

mysql> show variables like 'character_set%';

+--------------------------+----------------------------+

| Variable_name            | Value                      |

+--------------------------+----------------------------+

| character_set_client     | gbk                        |

| character_set_connection | gbk                        |

| character_set_database   | latin1                     |

| character_set_filesystem | binary                     |

| character_set_results    | gbk                        |

| character_set_server     | latin1                     |

| character_set_system     | utf8                       |

| character_sets_dir       | /usr/share/mysql/charsets/ |

+--------------------------+----------------------------+

8 rows in set (0.00 sec)

改服务端字符集

更改my.cnf参数

[mysqld] 一定要在mysqld下面加

default-character-set=gbk

改客户端字符集

如果不支持中文,可以在备份文件加入set names gbk还原

mysql> set names gbk;

Query OK, 0 rows affected (0.00 sec)

1、在服务器my.cnf配置文件里[mysqld]模块下添加字符集配置,重启生效生,创建数据库和表默认都是这个设置的字符集。

2、客户端字符集设置,set names gbk; 这样可以确保插入后的中文 ,不出现乱码,对执行set names gbk;之前插入的中文无效。

在linux登陆和mysql下的set names gbk;相同

[root@localhost tmp]# mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock --default-character-set=gbk

mysql> show variables like 'character_set%';

+--------------------------+--------------------------------------------+

| Variable_name            | Value                                      |

+--------------------------+--------------------------------------------+

| character_set_client     | gbk     #客户端字符集set names gbk;        |

| character_set_connection | gbk     #连接字符集 set names gbk;         |

| character_set_database   | gbk  #数据库字符集 配置文件或建库建表指定  |

| character_set_filesystem | binary                                     |

| character_set_results    | gbk   #返回结果字符集,set names gbk;      |

| character_set_server     | gbk   #服务器字符集 配置文件或建库建表指定 |

| character_set_system     | utf8                                       |

| character_sets_dir       | /usr/share/mysql/charsets/                 |

+--------------------------+--------------------------------------------+

8 rows in set (0.00 sec)

linux命令行查看表

[root@localhost tmp]# mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock  -e "select * from user1.test;"  user1是数据库 test是数据库里的表

+----+--------+------+

| id | name   | sex  |

+----+--------+------+

|  1 | user1  | NULL |

|  2 | user2  | NULL |

|  3 | user3  |   16 |

|  4 | user4  |   18 |

|  5 | user5  |   19 |

|  6 | xiaohu | NULL |

|  7 | 小游 | NULL |

+----+--------+------+

[root@localhost ~]# mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock -e "set names gbk;select * from data1.test;"

+----+--------+------+-----+------+

| id | name   | sex  | age | org  |

+----+--------+------+-----+------+

|  1 | user1  | NULL |   0 | NULL |

|  2 | user2  | NULL |  26 | NULL |

|  4 | user4  | NULL |   0 | NULL |

|  5 | user5  | NULL |   0 | NULL |

|  6 | user6  | NULL |   0 | NULL |

|  7 | 小游 | NULL |   0 | NULL |

|  8 | 小游 | NULL |   0 | NULL |

+----+--------+------+-----+------+

查看mysql支持引擎

mysql> show engines;

+------------+---------+------------------------------------------------------------+--------------+------+------------+

| Engine     | Support | Comment                                                    | Transactions | XA   | Savepoints |

+------------+---------+------------------------------------------------------------+--------------+------+------------+

| MRG_MYISAM | YES     | Collection of identical MyISAM tables                      | NO           | NO   | NO         |

| CSV        | YES     | CSV storage engine                                         | NO           | NO   | NO         |

| MyISAM     | DEFAULT | Default engine as of MySQL 3.23 with great performance     | NO           | NO   | NO         |

| InnoDB     | YES     | Supports transactions, row-level locking, and foreign keys | YES          | YES  | YES        |

| MEMORY     | YES     | Hash based, stored in memory, useful for temporary tables  | NO           | NO   | NO         |

+------------+---------+------------------------------------------------------------+--------------+------+------------+

5 rows in set (0.00 sec)

备份数据库

普通备份

[root@localhost ~]# mysqldump -uroot -p'root'  data1 >/tmp/data_bak.sql

[root@localhost ~]# mysqldump -uroot -p'root' -S /var/lib/mysql/mysql.sock data1|gzip  >/tmp/data$(date +%F).sql.gz

备份多个库 data1 you_bgk

[root@localhost tmp]# mysqldump -uroot -p'root' -S /var/lib/mysql/mysql.sock -B data1 you_bgk|gzip >/tmp/database_bak$(date +%F).sql.gz

如果分库备份

备份表 data1是库名  test是表名

[root@localhost tmp]# mysqldump -uroot -p'root' -S /var/lib/mysql/mysql.sock data1 test >/tmp/test_table.sql

备份多张表  data1是库名  test是表名 aaa是表名

[root@localhost tmp]# mysqldump -uroot -p'root' -S /var/lib/mysql/mysql.sock data1 test aaa >/tmp/test_table.sql

备份库和表结构

[root@localhost tmp]# mysqldump -uroot -p'root' -S /var/lib/mysql/mysql.sock -d data1 >/tmp/aaa.sql

[root@localhost tmp]# egrep -v "^$|#|\*|--" aaa.sql

DROP TABLE IF EXISTS `aaa`;

CREATE TABLE `aaa` (

`name` char(20) NOT NULL,

`age` int(3) NOT NULL,

PRIMARY KEY (`name`)

) ENGINE=MyISAM DEFAULT CHARSET=gbk;

DROP TABLE IF EXISTS `test`;

CREATE TABLE `test` (

`id` int(3) NOT NULL AUTO_INCREMENT,

`name` char(20) NOT NULL,

`sex` int(4) DEFAULT NULL,

`age` int(4) NOT NULL,

`org` int(4) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=29 DEFAULT CHARSET=gbk;

让备份结果输出少一些  --compact

[root@localhost tmp]# mysqldump -uroot -p'root' -S /var/lib/mysql/mysql.sock  --compact -d data1 >/tmp/aaa.sql

恢复数据库

1、source 命令恢复

用source加linux命令行的路径直接恢复mysql数据

mysql> source /tmp/tmp.sql

Database changed

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.05 sec)

Query OK, 0 rows affected (0.00 sec)

[root@localhost tmp]# mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock  -e "source /tmp/tmp.sql "

2、mysql命令导入更新恢复

[root@localhost tmp]# mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock  < /tmp/tmp.sql

假定开发人员让我们插入数据到数据库,可能是邮件发的,内容可能是字符串或都是下面的文件,带中文

sql文里没有use data1的时候,在导入时路径就必须指定数据库名

[root@localhost tmp]# mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock  < /tmp/aa.sql

mysql -e实现非交互式对话

[root@localhost tmp]# mysql -uroot -p'root' -e "select * from data1.test;"

echo 和 -e 类似命令

[root@localhost tmp]# echo "show status" | mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock

[root@localhost tmp]#cat | mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock << EOF

show databases;

EOF

[root@localhost tmp]# cat | mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock << EOF

> show databases;

> EOF

Database

information_schema

anni_bgk

data0

data1

data2

data3

mysql

you

you1

[root@localhost tmp]# mysql -uroot -p'root' -e "select * from data1.test;select * from data1.aaa;"

查看mysql状态

[root@localhost tmp]# mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock  -e "show processlist;"

[root@localhost tmp]# mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock  -e "show full processlist;"

+----+------+-----------+-------+---------+------+-------+-----------------------+

| Id | User | Host      | db    | Command | Time | State | Info                  |

+----+------+-----------+-------+---------+------+-------+-----------------------+

|  3 | root | localhost | data1 | Sleep   |  168 |       | NULL                  |

|  7 | root | localhost | NULL  | Query   |    0 | NULL  | show full processlist |

+----+------+-----------+-------+---------+------+-------+-----------------------+

mysql sleep过多的问题

[root@localhost tmp]# mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock  -e "show full processlist;" |egrep -v "sleep"

IdUserHostdbCommandTimeStateInfo

3rootlocalhostdata1Sleep291NULL

10rootlocalhostNULLQuery0NULLshow full processlist

查看mysql参数

[root@localhost tmp]# mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock  -e "show variables"

查看mysql状态

[root@localhost tmp]# mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock  -e "show status"

查看mysql各个查询状态

[root@localhost tmp]# mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock  -e "show global status"

过滤Com_select|Com_insert|Com_delete|Com_update

[root@localhost tmp]# mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock  -e "show global status"| egrep "Com_select|Com_insert|Com_delete|Com_update"

Com_delete0

Com_delete_multi0

Com_insert0

Com_insert_select0

Com_select18

Com_update0

Com_update_multi0

查看引擎的缓冲区

[root@localhost tmp]# mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock  -e "show variables;"|grep key_buffer

key_buffer_size8384512

设置缓冲区

[root@localhost tmp]# mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock  -e "set global key_buffer_size = 32776192;"

[root@localhost tmp]# mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock  -e "show variables;"|grep key_buffer

key_buffer_size32776192  #32M

源码包

[root@localhost tmp]# vim /data/3306/my.cnf

sedi -i 's#key_buffer_size = 16M# key_buffer_size = 32M#g' /data/3306/my.cnf

安装mysql

建立mysql帐号

groupadd mysql;

useradd -s /sbin/nologin -g mysql -M mysql;

-s /sbin/nologin 表示禁止该用户登陆,加强安全

-g mysql 指定属于mysql组

-M 表示不创建用户家目录

查看创建的用户

tail -1 /etc/passwd

mysql:x:500:500::/home/mysql:/sbin/nologin

编绎之前安装gcc  yum -y install gcc*

yum -y install ncurses-devel

./configure \

--prefix=/usr/local/mysql \

--with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock \

--localstatedir=/usr/local/mysql/data \

--enable-assembler \

--enable-thread-safe-client \

--with-mysqld-user=mysql \

--with-big-tables \

--without-debug \

--with-prthread \

--enable-assembler \

--with-extra-charsets=complex \

--with-readline \

--with-ssl \

--with-embedded-server \

--enable-local-infile \

--with-plugins=partition,innobase \

--with-plugin-PLUGIN \

--with-mysqld-ldflags=-all-static \

--with-client-ldflags=-all-static

make && make install

ls /usr/local/mysql/

killall mysqld

以前的mysql单实例清除

生产环境多实例 内存16G,双CPU 八核,磁盘6*600G sas 15k

主从同步

mysql> grant replication slave on *.* to rep@'172.20.100.%' identified by '123456';

Query OK, 0 rows affected (0.00 sec)

replication slave 为mysql同步的必须权限,此处不要授权all

*.*所有库所有表

mysql> select user,host from mysql.user;

+------+-----------------------+

| user | host                  |

+------+-----------------------+

| root | 127.0.0.1             |

| rep  | 172.20.100.%          |

|      | localhost             |

| root | localhost             |

|      | localhost.localdomain |

| root | localhost.localdomain |

+------+-----------------------+

6 rows in set (0.00 sec)

生产环境时,操作主从复制,需要申请停机时间。锁表会影响业务

锁表主库

mysql> flush tables with read lock;

Query OK, 0 rows affected (0.00 sec)

锁表失效时间以下

mysql> show variables like '%timeout%';

+----------------------------+-------+

| Variable_name              | Value |

+----------------------------+-------+

| connect_timeout            | 10    |

| delayed_insert_timeout     | 300   |

| innodb_lock_wait_timeout   | 120   |

| innodb_rollback_on_timeout | OFF   |

| interactive_timeout        | 28800 |

| net_read_timeout           | 30    |

| net_write_timeout          | 60    |

| slave_net_timeout          | 3600  |

| table_lock_wait_timeout    | 50    |

| wait_timeout               | 28800 |

+----------------------------+-------+

10 rows in set (0.00 sec)

mysql> show master status;

+------------------+----------+--------------+------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000004 |      536 |              |                  |

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)

[root@localhost ~]# mysqldump -uroot -p -S /data/3306/mysql.sock -A -B |gzip >/server/backup/mysql_bak.$(date +%F).sql.gz

-A 备份所有库

-B 添加参数比如DROP等

[root@localhost backup]# ls

mysql_bak.2017-04-21.sql.gz

解锁表

mysql> unlock tables;

Query OK, 0 rows affected (0.00 sec)

从库操作

[root@localhost backup]# mysql -uroot -p -S /data/3307/mysql.sock < /server/backup/mysql_bak.2017-04-21.sql

如果需要停掉从库,执行以下命令

[root@localhost ~]# mysql -uroot -p -S /data/3307/mysql.sock -e "stop slave;

方法1

cat |mysql -uroot -p'root' -S /data/3307/mysql.sock<< EOF

CHANGE MASTER TO

MASTER_HOST='172.20.100.134',

MASTER_PORT=3306,

MASTER_USER='rep',

MASTER_PASSWORD='123456',

MASTER_LOG_FILE='mysql-bin.000001',

MASTER_LOG_POS=460;

EOF

方法2

mysql>  CHANGE MASTER TO

->  MASTER_HOST='172.20.100.134',

->  MASTER_PORT=3306,

->  MASTER_USER='rep',

->  MASTER_PASSWORD='123456',

->  MASTER_LOG_FILE='mysql-bin.000004',

->  MASTER_LOG_POS=536;

Query OK, 0 rows affected (0.10 sec)

启动同步开关

[root@localhost backup]# mysql -uroot -p -S /data/3307/mysql.sock -e "start slave;"

[root@localhost backup]# mysql -uroot -p -S /data/3307/mysql.sock -e "show slave status\G"

Enter password:

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 172.20.100.134

Master_User: rep

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000004

Read_Master_Log_Pos: 696

Relay_Log_File: relay-bin.000002

Relay_Log_Pos: 411

Relay_Master_Log_File: mysql-bin.000004

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB:

Replicate_Ignore_DB: mysql

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos: 696

Relay_Log_Space: 560

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: 0     #和主库比同步延迟的秒数,这个参数很重要。

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

查看状态

[root@localhost backup]# mysql -uroot -p'123456' -S /data/3307/mysql.sock -e "show slave status\G" | egrep "Slave_IO_Running|Slave_SQL_Running"

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

如果报错1007

[root@localhost ~]# mysql -uroot -p -S /data/3307/mysql.sock -e "stop slave;"

[root@localhost ~]# mysql -uroot -p -S /data/3307/mysql.sock -e "set global sql_slave_skip_counter =1 ;" 1就是忽略1次更新,不推荐

[root@localhsot ~]# mysql -uroot -p -S /data/3307/mysql.sock -e "start slave;"

不加班在工作时间轻松配置从库

在服务器压力比较小的时候备份

1、锁表备份全备一份

2、锁表前后取得show master status值记录日志里

binlog-ignore-db=information_schema

binlog-ignore-db=mysql

主从库授权

在生产环境以下参考

主库(提供写服务)     用户user  密码user123 ip 172.20.100.1 port 3306

从库(提供读服务)     用户user  密码user123 ip 172.20.100.2 port 3306

oracle数据库倒顺,mysql常用命令相关推荐

  1. oracle执行命令显示2,oracle数据库执行脚本时常用命令总结

    收集了一篇oracle数据库执行脚本常用命令总结,希望给同学带来一些帮助. 1. 执行一个SQL脚本文件 代码如下 sqlplus user/pass@servicenamefile_name.sql ...

  2. oracle数据库的连接和常用命令用户管理

    数据库的链接: 1: 启动数据库的服务:  计算--->管理---->服务----> oracleserviceorcl  , listener 启动:        使用命令命令: ...

  3. mysql tree 修改_13.1 设置更改root密码 13.2 连接mysql 13.3 mysql常用命令

    更改root密码 ps aux |grep mysql     //先查看一下mysql是否启动了 /etc/init.d/mysqld start    //启动mysql ps aux |grep ...

  4. MySql常用命令集Mysql常用命令showdatabases;显示数据库createdatab

    MySql 常用命令集 Mysql常用命令 show databases; 显示数据库 create database name; 创建数据库 use databasename; 选择数据库 drop ...

  5. MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令

    相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...

  6. 【CentOS 7MySQL常用操作3】,MySQL常用命令#180113

    2019独角兽企业重金招聘Python工程师标准>>> hellopasswd MySQL常用命令 查询库show databases; 切换库use mysql; 查看库里的表sh ...

  7. mysql root命令_设置更改root密码、连接mysql、mysql常用命令

    目录 一.设置更改root密码 二.连接mysql 三.mysql常用命令 一.设置更改root密码 检查mysql服务是否启动 [root@minglinux-01 ~] ps aux |grep ...

  8. 13.3 mysql常用命令

    2019独角兽企业重金招聘Python工程师标准>>> mysql常用命令目录概要 查询库 show databases; 切换库 use mysql; 查看库里的表 show ta ...

  9. Redis数据库的部署及常用命令

    Redis数据库的部署及常用命令 一.关系数据库和非关系数据库 1.1 关系型数据库 1.2 非关系型数据库 1.2.1 非关系型数据库的产生背景 1.2.2 关系型数据库和非关系型数据库区别 1)数 ...

最新文章

  1. Word文档以两列的格式打开,类似于书本那样
  2. python中的daemon守护进程实现方法
  3. 【总结】有三AI所有GAN相关学习资料汇总,有图文、视频、代码实战等......
  4. URL Collection
  5. Android文件存储方式之openFileOutput与获取数据openFileInput
  6. iis web.config 配置 经典模式_django部署在iis下,webconfig错误
  7. mysql迭代查询并分页_mysql 数据库 分页查询优化
  8. bootstrap guide
  9. php订单日期分类,PHP订单即将到来的日期
  10. 【vue】【element】el-table列表中设计一个颜色块
  11. 【李宏毅2020 ML/DL】P74 Generative Adversarial Network | Basic Idea
  12. This project references NuGet package(s) that are missing on this computer
  13. vrep中的运动规划(主要是针对机械臂)(未完)
  14. 矢量数据 秦岭淮河_秦岭-淮河一线的大致纬度
  15. 打开计算机任务栏有桌面没,电脑桌面任务栏不显示打开的窗口怎么办
  16. 争对让望对思野葛对山栀注解_《笠翁对韵》四 支(4)
  17. 从通信的角度理解现场总线
  18. Java模拟猜数字小游戏,有次数限制,并且输出猜测次数。
  19. 用于数据科学和机器学习的GitHub存储库和Reddit主题
  20. win7计算机无法连接投影仪,win7系统无法连接投影仪的解决方法

热门文章

  1. 为什么ABAP里有些场景必须加上COMMIT WORK才生效
  2. AG3 hang after click membership search
  3. SAP Kyma GraphQL storage实现
  4. SAP Spartacus的自定义静态页面
  5. Pin code码已被重置
  6. 如何找到SAP Cloud for Customer标准培训和认证方面的信息
  7. 用pc装华为服务器系统,pc安装服务器系统安装
  8. kafka 0.9 java开发_kafka 0.9 java producer and consumer demo
  9. html列表小写字母,python实现大小写字母转换
  10. c++小项目_编程初学者的练手小项目(Pythonamp;C/C++)