Centos 7 安装MySQL5.7.35,顺便练习一下数据库基本操作


安装部分

Linux系统上安装mysql5.7

(如需rpm包,自行下载)
mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz的rpm包百度网盘链接(635MB):

链接:https://pan.baidu.com/s/1On8I2Tt7dr9E5qIfa3uZ5A
提取码:linu

这里通过Xshell 传到Linux系统上,Windows下装一个Xshell,拖入下载的压缩包到Xshell窗口即可,默认放在 root 目录下
Centos 7 安装MySQL5.7.35,顺便练习一下数据库基本操作_第1张图片


检查是否装有关mysql的软件包(非第一次安装)

rpm -qa|grep -i mysql

如果有,用 rm -e 软件包名统一删除,提示错误的话,命令最后加上 – nodeps,例如:

rpm -e mysql-community-libs-5.7.36-1.el7.x86_64 --nodeps

再次查询,没有结果就干净了


开始安装

解开压缩包

tar -zxvf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz

移到/usr/local/mysql 目录下

mv mysql-5.7.35-linux-glibc2.12-x86_64 /usr/local/mysql

创建mysql用户组和用户

groupadd mysql
useradd -r -g mysql mysql

如果之前有mysql用户,userdel -r mysql 删除

创建mysql数据目录 /data/mysql

mkdir -p  /data/mysql 

设置该目录的拥有者为mysql用户与mysql用户组

chown mysql:mysql -R /data/mysql

配置/etc/my.cnf文件

vi /etc/my.cnf

内容是:

[mysqld]
bind-address=0.0.0.0 #绑定地址运行远程连接
port=3306 #Mysql开放的端口
user=mysql
basedir=/usr/local/mysql #Mysql安装的绝对路径
datadir=/data/mysql #Mysql数据存放的绝对路径
socket=/tmp/mysql.sock #套接字文件
log-error=/data/mysql/mysql.err #mysql生成的错误日志存放的路径
pid-file=/data/mysql/mysql.pid #为mysqld程序指定一个存放进程ID的文件
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true

进入目录 /usr/local/mysql/bin/,初始化mysql

cd /usr/local/mysql/bin/
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize

将mysql.server 服务添加到 /etc/init.d/mysql 目录下,才能用service 启动mysql.server

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

查看mysql自动生成的初始密码,等下登录mysql需要回来复制

cat /data/mysql/mysql.err | grep password

启动mysql.server

service mysql start
service mysql status

创建软连接,就不必每次都去/usr/mysql/bin 下执行./mysql -u root -p,在命令行直接mysql -u root -p

ln -s  /usr/local/mysql/bin/mysql    /usr/bin

登录数据库

mysql -u root -p

Centos 7 安装MySQL5.7.35,顺便练习一下数据库基本操作_第2张图片

复制前面的初始密码粘贴过来

登录后设置密码,根据安全性需求自己定义new password,可以是简单的123456,因为这里安装完密码的强度验证等级为OFF,杂七杂八各种安装方式都有,有些安装默认是MEDIUM,中等级强度需要设置复杂密码

Centos 7 安装MySQL5.7.35,顺便练习一下数据库基本操作_第3张图片

SET PASSWORD = PASSWORD('new password');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;

设置任何主机都可以访问mysql,主要是为了远程Navicat连接

USE mysql  
UPDATE user SET host = '%' WHERE user = 'root';
FLUSH PRIVILEGES; 

退出数据库

exit

如果要在Windows上远程连接mysql,需要安装图形化管理软件Navicat

Centos 7 安装MySQL5.7.35,顺便练习一下数据库基本操作_第4张图片

如遇连接失败的情况,临时关闭Linux的firewalld

systemctl stop firewalld

基本操作部分

命令行连接数据库:mysql -u root -p
(需要创建软连接才可以,如果提示软连接文件mysql存在,用 ln -sf 覆盖)

退出数据库:exit


数据类型:数值,日期/时间,字符串(字符)类型

数值类型
严格数值数据类型:integer,smallint,decimal,numeric
近似数值数据类型:float,real,double,precision

日期和时间类型
datatime,date,timestamp,time,year

字符串类型
char,varchar,binary,varbinary,blob,text,enum,set

常见字段含义:
auto_increment //自增长
not null //非空
default //默认值
unique //唯一
charset //指定字符集
primary key //主键


创建数据库:

create database dbname;

显示所有数据库

show databases;

删除数据库

drop database dbname;

选择数据库

use dbname;

创建数据表
需要有表名,表字段名,定义每个表字段
命令行先选择数据库

use dbname;

创建表

create table table_name(column column_type,column1 column_type1,…)

创建表emp实例:

create table emp(
id int,
name varchar(40),
sex char(4),
birthday date,
job varchar(100)
);

显示数据库所有的表

show tables;

显示表emp的结构信息

desc emp;

修改表结构

添加字段hobby

alter table emp add hobby varchar(100);

修改字段job的值

alter table emp modify job varchar(60);

删除sex字段

alter table emp drop sex;

修改表名为user

rename table emp to user;

(以上的表名已修改成user)

修改表的字符集为utf-8

alter table user character set utf-8;

修改列名name为uname

alter table user change column name uname varchar(15);

删除表

drop table user;

表的增 删 改 查

插入表数据
insert into tablename( …) values( …);

insert into user(id,uname,sex,birthday,job,hobby)
values(1,'qyc','man','1999-09-09','网络工程师','钓鱼');

指定某列插入某些数据

insert into user(id,job) values(2,'运维工程师');

修改表数据
update tablename set … ;

根据某一列的值来修改其他列

update user set uname='qyd',hobby='下饭' where id=2;

删除表数据
delete from tablename where … ;

根据某一些列的值来删除整条记录

delete from user where id=2;

删除表中所有数据

delete from user;

或者

truncate table user;

查询表数据
select … from tablename;
查询所有信息

select * from user;

根据某一列来查询某些信息

select id,name from user where job='运维工程师';

end

你可能感兴趣的:(笔记)