安装mysql
yum安装5.7版本
#搭建yum源
[root@centos7 ~]#cat >/etc/yum.repos.d/mysql.repo <<EOF
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/
enabled=1
gpgcheck=0
EOF
[root@centos7 ~]#yum -y install mysql-community-server
[root@localhost yum.repos.d]# systemctl start mysqld
[root@localhost yum.repos.d]# ss -ntap |grep 3306
[root@localhost yum.repos.d]# mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[root@centos7 ~]#grep password /var/log/mysqld.log
[root@localhost yum.repos.d]# mysql -u root -p'+8saq%5+ljzG'
#特殊符号用单引号引起来
修改密码
安装mycli 插件 客户端工具
客户端工具和mysql,
使用新安装的pip版本(通过符号链接pip37)从阿里云镜像安装mycli
[root@localhost opt]#yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
[root@localhost opt]#tar zxvf Python-3.7.7_.tgz
[root@localhost Python-3.7.7]#cd Python-3.7.7/
[root@localhost Python-3.7.7]#./configure --prefix=/usr/local/Python-3.7.7/
[root@localhost Python-3.7.7]#make
[root@localhost Python-3.7.7]#make install
[root@localhost Python-3.7.7]#ln -s /usr/local/Python-3.7.7/bin/python3.7 /usr/bin/python37
[root@localhost Python-3.7.7]#ln -s /usr/local/Python-3.7.7/bin/pip3.7 /usr/bin/pip37
pip37 install --upgrade pip -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
#升级
[root@localhost Python-3.7.7]#pip37 install mycli -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
[root@localhost Python-3.7.7]#ln -s /usr/local/Python-3.7.7/bin/mycli /usr/bin/mycli
[root@localhost Python-3.7.7]#mycli -u root -p 123123
[root@localhost ~]#vim /etc/my.cnf
[mysql]
prompt=(\u@\h) [\d]>\_
auto-rehash
图形化界面:
[mysqld]
skip_grant_tables
基本操作
修改字符集
vim /etc/my.cnf
[mysqld]
character-set-server=utf8mb4
建立数据库 db1
新建数据库 指定字符集
mysql> create database db2 character set 'utf8';
mysql> create database db2 charset=utf8;
#指定utf8 字符集
mysql> show create database db1;
#查看数据库的基础信息
REATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
删除数据库
格式:
DROP DATABASE|SCHEMA [IF EXISTS] 'DB_NAME';
查看数据库列表
MySQL root@(none):(none)> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| db1 |
| db3 |
| hellodb |
| mydatabase |
| mysql |
| performance_schema |
| sys |
+--------------------+
show create database db1;
表操作
新建表
create table 表名 (字段1 数据类型,字段2 数据类型[,...] [,PRIMARY KEY (主键名)]);
create table student (id smallint unsigned primary key auto_increment , name varch
-> ar(10), age tinyint unsigned ,gender enum('m','f') default 'm');
-
id smallint unsigned primary key auto_increment:id: 字段名smallint: 数据类型,表示一个小的整数。unsigned: 表示这个字段只存储非负整数。primary key: 表示这个字段是这个表的主键。主键是唯一标识表中每一行的字段,且不能有重复值,也不能有NULL值。auto_increment: 表示当向表中插入新行但没有为id字段指定值时,MySQL会自动为这个字段生成一个新的值。这个值通常是比表中任何现有id值都大的下一个整数。
-
name varchar(10):name: 字段名varchar(10): 数据类型,表示一个可变长度的字符串,最大长度为10个字符。
-
age tinyint unsigned:age: 字段名tinyint: 数据类型,表示一个非常小的整数。unsigned: 表示这个字段只存储非负整数。
-
gender enum('M','F') default 'M':gender: 字段名enum('M','F'): 数据类型,表示一个枚举类型,只能包含预定义的值列表中的一个值。在这里,它只能是'M'(代表男性)或'F'(代表女性)。default 'M': 如果在插入新行时没有为gender字段指定值,它将默认为'M'。
查看表的结构
MySQL root@(none):db1> desc student; ###describe
+--------+----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+----------------------+------+-----+---------+----------------+
| id | smallint(5) unsigned | NO | PRI | <null> | auto_increment |
| name | varchar(10) | YES | | <null> | |
| age | tinyint(3) unsigned | YES | | <null> | |
| gender | enum('m','f') | YES | | m | |
+--------+----------------------+------+-----+---------+----------------+
插入数据
MySQL root@(none):db1> insert student (name,age) values ('cxk',66);
MySQL root@(none):db1> select * from student ##查看数据
+----+------+-----+--------+
| id | name | age | gender |
+----+------+-----+--------+
| 1 | cxk | 66 | m |
+----+------+-----+--------+
修改表结构
mysql [db1]> alter table student add phone char(11) not null ; 命令字 命令字 表名 关键字 子段名称字段属性
change 修改字段 名称
drop 删除字段
其他设置
alter [ignore] table tbl_name
alter_specification [, alter_specification] ...
alter_specification:
add [column] column_definition [first | after col_name ] //添加字段
|alter [column]col_name{set default literal|drop default} //修改字段默认值
|change [column] old_col_name column_definition //重命名字段
[first|after col_name]
|modify [column]column_definition[first|aftercol_name] //修改字段数据类型
drop [column] col_name //删除列
rename table old [TO] new_tbl_name //对表重命名
|order by col_name //按字段排序
|convert TO character set charset_name[collate collation_name] //将字符集转换为二进制
|[default] character set charset_name [collate collation_name] //修改表的默认字符集