mysql常用命令
# 启动MySQL并检查MySQL运行状态
systemctl start mysqld
sudo systemctl start mysqld
# 查看mysql运行状态
systemctl status mysqld
# 关闭MySQL服务
systemctl stop mysqld
# 登录并进入命令行
mysql -uroot -p
安装步骤
安装之前检测系统是否有自带的 MySQL
# 检查是否安装过 MySQL
rpm -qa | grep mysql
# 删除安装过的mysql
sudo yum remove mysql-server mysql57-community-release-el7-11.noarch
# 检查是否存在 mariadb 数据库(内置的 MySQL 数据库)
rpm -qa | grep mariadb
# 如果存在内置的 MySQL 数据库),强制删除
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
开始安装
# 下载 MySQL 源
curl -O https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm
# 安装MySQL源
yum localinstall mysql57-community-release-el7-11.noarch.rpm
# 检查MySQL源是否安装成功
# --- 出现以下信息三条代表安装成功
# --- mysql-connectors-community/x86_64 MySQL Connectors Community 199
# --- mysql-tools-community/x86_64 MySQL Tools Community 92
# --- mysql57-community/x86_64 MySQL 5.7 Community Server 604
yum repolist enabled | grep "mysql.*-community.*"
# 有了MySQL源后安装MySQL
# --- 如果安装报错,提示无公共秘钥
# --- 解决方法: rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022, 然后再次安装
yum install mysql-community-server
# 查看是否安装成功
yum list installed mysql-*
启动运行
# 启动MySQL并检查MySQL运行状态
systemctl start mysqld
systemctl status mysqld
修改密码
# 获取MySQL默认登录密码,登录MySQL,并修改默认密码
grep 'temporary password' /var/log/mysqld.log # 2022-08-12T10:01:26.057289Z 1 [Note] A temporary password is generated for root@localhost: NCZ>g4I8a?c)
# 输入以下命令后,再输入默认登录密码,就能以 root 帐号登录 mysql
mysql -uroot -p
# 在创建数据库或数据表之前,要先用一下命令修改 root 用户的密码
# MySQL默认的密码复杂度为 MEDIUM,所以新密码至少为8位,并且必须包含大、小写字母、数字和特殊字符
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; # 这是格式
ALTER USER 'root'@'localhost' IDENTIFIED BY 'mysql@12345'; # 这是我实际上执行的
远程访问权限
# 授予root用户远程访问权限,并刷新权限使生效
# --- 第一个*是数据库,可以改成允许访问的数据库名称
# --- 第二个 是数据库的表名称,代表允许访问任意的表
# --- root代表远程登录使用的用户名,可以自定义
# --- %代表允许任意ip登录,如果你想指定特定的IP,可以把%替换掉就可以了
# --- password代表远程登录时使用的密码,可以自定义
grant all privileges on *.* to 'root' @'%' identified by 'mysql@12345'; # 这是格式
#让权限立即生效:
flush privileges;
卸载 MySQL
# 查看MySQL安装情况
# --- 会出现一个列表,执行删除
# --- rpm -e --nodeps mysql-community-common-5.7.39-1.el7.x86_64
# --- rpm -e --nodeps mysql-community-server-5.7.39-1.el7.x86_64
# --- rpm -e --nodeps mysql-community-client-5.7.39-1.el7.x86_64
# --- rpm -e --nodeps mysql57-community-release-el7-11.noarch
# --- rpm -e --nodeps mysql-community-libs-5.7.39-1.el7.x86_64
rpm -qa | grep mysql
# 查找所有MySQL目录并删除
# --- 会出现一个列表,执行删除
# --- rm -rf /usr/share/mysql
# --- rm -rf /usr/lib64/mysql
# --- rm -rf /usr/bin/mysql
# --- rm -rf /etc/logrotate.d/mysql
# --- rm -rf /etc/selinux/targeted/active/modules/100/mysql
# --- rm -rf /var/lib/mysql
# --- rm -rf /var/lib/mysql/mysql
# --- rm -rf /var/lib/docker/overlay2/c858fb6c78035c34f15f498f924aa6cf85e18ff10c0345e87a42aac7d315bc3e/diff/usr/include/mysql
# --- rm -rf /var/lib/docker/overlay2/c858fb6c78035c34f15f498f924aa6cf85e18ff10c0345e87a42aac7d315bc3e/diff/usr/include/mariadb/mysql
# --- rm -rf /var/lib/docker/overlay2/c858fb6c78035c34f15f498f924aa6cf85e18ff10c0345e87a42aac7d315bc3e/diff/etc/mysql
find / -name mysql
# 删除my.cnf
rm -f /etc/my.cnf
安装 MySQL 时遇到问题
# 启动MySQL
sudo systemctl start mysqld
# 如果有问题,看日志找到原因:
cat /var/log/mysqld.log
# 打开mysql命令行
# 输入以下命令后,再输入默认登录密码,就能以 root 帐号登录 mysql
mysql -uroot -p
其他
-
Linux 下退出 MySQL 命令:
Ctrl+z -
服务器重启后,mysql需要重新启动,使用以下命令将 mysql 设置为开机自启动:
systemctl enable mysqld -
MySQL 配置文件保存在/etc/路径下,你也可修改配置,重启 MySQL 服务后配置生效
# 打开配置文件
cat /etc/my.cnf
# 重启MySQL服务
systemctl restart mysqld
# 关闭MySQL服务
systemctl stop mysqld
# 查看数据库字符集
SHOW CREATE DATABASE testdb;
# 修改数据库字符集
alter database testdb character set utf8;
mysql 基本命令
命令参考文档:www.runoob.com/mysql/mysql…
MYSQL 在线编辑器: mysql.jsrun.net/
基本命令
SHOW DATABASES; -- 查看所有数据库
USE myblog; -- 切换数据库
SHOW TABLES; -- 显示当前数据库的表
CREATE SCHEMA `myblog`; -- 建库:myblog, 字符集:utf8 -- UTF-8 Unicode, 排序规则:utf8_general_ci
DROP DATABASE `myblog`; -- 删除数据库
-- 创建用户表
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`id` int UNSIGNED NOT NULL AUTO_INCREMENT ,
`username` varchar(20) NOT NULL ,
`password` varchar(20) NOT NULL ,
`realname` varchar(10) NOT NULL ,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 创建博客表
DROP TABLE IF EXISTS `blogs`;
CREATE TABLE `NewTable` (
`id` int UNSIGNED NOT NULL AUTO_INCREMENT ,
`title` varchar(50) NOT NULL ,
`content` longtext NOT NULL ,
`createtime` bigint(20) NOT NULL DEFAULT 0 ,
`author` varchar(20) NOT NULL ,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
增删改查
-- 添加数据(创建一个用户)
INSERT INTO users (username, `password`, realname) VALUES ('kgm', '123456', '康明');
INSERT INTO blogs (title, createtime, author, content) VALUES ('美好生活', '1660274746900', 'kgm', '时光,带着我年少的记忆……');
-- 查询
SELECT * FROM users;
SELECT id, username FROM users;
SELECT id, username FROM users WHERE username='kgm';
SELECT id, username FROM users WHERE username='kgm' OR username='lyl';
SELECT id, username FROM users WHERE username LIKE '%kg%'; -- 模糊查询
SELECT id, username FROM users WHERE username='kgm' AND `password`='123456';
SELECT * FROM users WHERE `password` LIKE '%56%' ORDER BY id DESC; -- 排序
SELECT * FROM blogs WHERE author='kgm' ORDER BY createtime desc; -- 查询文章,排序
-- 更新
-- 如果更新失败,提示不安全:SET SQL_SAFE_UPDATES= 0
UPDATE users SET realname='李思' WHERE username='kgm';
-- 删除
DELETE FROM users WHERE username='yat';
SELECT * FROM users WHERE state='1'; -- 查询state===1的数据
SELECT * FROM users WHERE state <> '0'; -- 查询state!==0的数据
UPDATE users SET state='0' WHERE username='kgm'; -- 逻辑删除