mysql安装卸载与基础知识
mysql卸载
#查询服务进程
ps -ef | grep mysql
#停止服务
service mysqld stop
#杀死进程
kill pid
#查找相关文件/路径
find / -name mysql
#删除相关文件/路径
rm -rf filename
#删除用户组
userdel mysql
groupdel mysql
tar.gz安装
准备好压缩包后,使用解压命令解压
tar -xzvf mysql*.tar.gz
mv mysql解压文件 /usr/local/mysql
检查mysql组和用户是否存
cat /etc/group|grep mysql
cat /etc/password|grep mysql
不存在,则添加
#添加用户组:
groupadd mysql
#添加用户:
useradd -r -g mysql mysql
更改mysql用户组、用户、权限
为保障mysql用户有足够的权限,我们需要将mysql目录下所有目录及文件夹的所属用户组和用户给到mysql:mysql,并让mysql用户具有相应的权限
# 更改用户组及用户:
chown -R mysql:mysql /usr/local/mysql
#更改权限:
chmod -R 755 /usr/local/mysql
#小知识:777代表具体权限,使用cl l可查看权限,rwx是三种权限,分别对应421
创建data目录
#进入mysql目录
cd /usr/local/mysql
#创建data目录
mkdir data
在mysql目录下复制文件放到/etc/目录下
cp support-files/mysql.server /etc/init.d/mysqld
cp support-files/my-default.cnf /etc/my.cnf
编辑配置文件/etc/my.cnf
#如果该目录下没有my.cnf文件,则可以新建一个同名文件,并进行编辑。
vim /etc/my.cn
[mysqld]
#character
character-set-server=utf8
collation-server=utf8_general_ci
datadir=/usr/local/mysql/data
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=600
innodb_file_per_table=1
lower_case_table_names=1
[mysqld_safe]
datadir=/usr/local/mysql/data
log-error=/usr/local/mysql/data/error.log
pid-file=/usr/local/mysql/data/mysql.pid
user=mysql
tmpdir=/tmp
初始化mysql(会给出,默认密码)
#进入mysql的bin目录:
cd /usr/local/mysql/bin
#进行初始化:
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
添加软连接,并重启mysql服务
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
service mysql restart
使用默认密码登录mysql修改密码(如果提示mysql目录或者文件不存在,可以尝试重启电脑)
mysql -uroot -p默认密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
rpm安装
mysql安装包rpm阿里镜像源
https://mirrors.aliyun.com/mysql/
缺失wget工具使用yum install wget下载安装
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
-i (install 安装软件包 )
-v (view 可视化)
-h ( hour 方便自己记忆 显示安装进度 )
执行完成后会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo mysql-community-source.repo
必须进入到 /etc/yum.repos.d/目录后再执行以下脚本(不执行好像也没发现影响)
cd /etc/yum.repos.d/
yum install mysql-server
systemctl start mysqld
#启动MySQL
获取临时密钥
grep 'temporary password' /var/log/mysqld.log
登录修改密钥
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '@abcd123456';
查看初始密钥策略
mysql> SHOW VARIABLES LIKE'validate_password%';
#首先需要设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW 即可:
set global validate_password_policy=LOW;
#当前密码长度为 8 ,修改密码长度为6 位的密码:
set global validate_password_length=6;
#然后就可以设置简单的密码了:
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
#可以验证一下密码是否修改成功,输入quit或者exit退出mysql,再输入mysql -uroot -p,然后输入123456测试是否能够登录mysql。
修改用户权限让数据库可以远程连接
mysql> use mysql;
mysql> select Host, User from user;
mysql> update user set host ='%' where user='root';
mysql> flush privileges;
mysql> quit;
配置mysql:
vi /etc/my.cnf
增加如下内容:
character-set-server=utf8
lower_case_table_names=0
slow_query_log=1
long_query_time=10.000000
重新启动Mysql服务:
systemctl restart mysqld
再登录MySQL:
mysql -u root -p
遇到密钥不匹配问题解决,更新现有mysql安装包的密钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
防火墙开放3306端口
防火墙开启3306端口
1、查看防火墙
systemctl status firewalld
2、查看3306端口状态
firewall-cmd --zone=public --query-port=3306/tcp
3、如果是no,表示关闭,打开3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
4、防火墙重载
firewall-cmd --reload
5、再次查看3306状态
firewall-cmd --zone=public --query-port=3306/tcp
6、查看防火墙状态
service iptables status
7、查看已开启的端口
firewall-cmd --list-ports
问题:查看防火墙状态出现:
Unit iptables.service could not be found.
解决方案:
- 安装iptables-services
yum install iptables-services
- 启动iptables
systemctl enable iptables
systemctl start iptables
配置文件
配置文件在etc目录下
进入/etc,执行命令查找配置文件
ls -lrt | grep my.cnf
1)-l 表示开启长列表输出,打开了就会输出文件权限、引用计数、所有者、所属组、文件大小、修改日期和文件名称这些详细的信息。
2)-t 以时间排序,最新的文件会排在上面。
3)-r 表示反向排序、倒序输出。
4)-x 按列输出,横向排序。
5)-u 按照文件上次被访问的时间排序。
查看mysql进程
ps -ef | grep mysql
ps查看进程 -e显示所有进程 -f全格式 grep查找:
启动mysql
service mysqld start [stop] [restart] [status]
mysql语句分类
操作语句分为4类
DDL数据定义语言 建库建表
DML数据操作语言 对数据进行增删改操作
DQL数据查询语言 对数据进行查询
DCL数据控制语言 对用户的权限进行设置
数据库创建使用
create database xiaohuang;
use xiaohuang;
select database();#判断在哪个库
create database if not exists xiaohuang;#判断xiaohuang库是否存在,如果不存在则创建
create database xiaohuang default character set gbk;#创建数据库,并指定字符集【不指定字符集,默认配置文件中的字符集】
show create database xiaohuang;#查看创建数据库信息(例如字符集)
show variables like ‘character%’;#查看当前mysql使用的字符集
mysql常见数据类型
主要掌握定点型、char/vachar/TEXT、时间型
定点型不丢数据精度,原来是是什么就存什么。
char固定长度,vachar可变长度【char比vachar查找方便,vachar存储方便】
<1>整数型
类型 大小 范围(有符号) 范围(无符号unsigned) 用途
TINYINT 1 字节 (-128,127) (0,255) 小整数值
SMALLINT 2 字节 (-32768,32767) (0,65535) 大整数值
MEDIUMINT 3 字节 (-8388608,8388607) (0,16777215) 大整数值
INT 4 字节 (-2147483648,2147483647) (0,4294967295) 大整数值
BIGINT 8 字节 () (0,2的64次方减1) 极大整数值
<2>浮点型
FLOAT(m,d) 4 字节 单精度浮点型 备注:m代表总个数,d代表小数位个数
DOUBLE(m,d) 8 字节 双精度浮点型 备注:m代表总个数,d代表小数位个数
<3>定点型
DECIMAL(m,d) 依赖于M和D的值 备注:m代表总个数,d代表小数位个数
<4>字符串类型
类型 大小 用途
CHAR 0-255字节 定长字符串
VARCHAR 0-65535字节 变长字符串
TINYTEXT 0-255字节 短文本字符串
TEXT 0-65535字节 长文本数据
MEDIUMTEXT 0-16777215字节 中等长度文本数据
LONGTEXT 0-4294967295字节 极大文本数据
char的优缺点:存取速度比varchar更快,但是比varchar更占用空间
varchar的优缺点:比char省空间。但是存取速度没有char快
<5>时间型
数据类型 字节数 格式 备注
date 3 yyyy-MM-dd 存储日期值
time 3 HH:mm:ss 存储时分秒
year 1 yyyy 存储年
datetime 8 yyyy-MM-dd HH:mm:ss 存储日期+时间
timestamp 4 yyyy-MM-dd HH:mm:ss 存储日期+时间,可作时间戳
1字节=8位(bit)
1 1 1 1 1 1 1 1
/G == ;&纵向旋转90度
型 字节数 格式 备注
date 3 yyyy-MM-dd 存储日期值
time 3 HH:mm:ss 存储时分秒
year 1 yyyy 存储年
datetime 8 yyyy-MM-dd HH:mm:ss 存储日期+时间
timestamp 4 yyyy-MM-dd HH:mm:ss 存储日期+时间,可作时间戳
1字节=8位(bit)
1 1 1 1 1 1 1 1
/G == ;&纵向旋转90度
/g == ;