05-从0到1搭建gitlab CI/CD,CentOS服务器安装mysql

82 阅读5分钟

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'; -- 逻辑删除