MySQL三种安装方法(yum安装、编译安装、二进制安装)
mysql安装
- 一、yum安装方式
- 二、编译安装方式
- 三、二进制安装方式
切记:一定要关闭防火墙和selinux!!!
服务器配置:2C4G即可,一台
一、yum安装方式
mysql的官方网站:www.mysql.com
中文官网:https://www.mysql.com/cn/
1、下载mysql的yum源
[root@mysql-server ~]# wget https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
//或者下载到本地再上传到服务器
2、安装mysql的yum仓库
[root@mysql-server ~]# yum -y install mysql80-community-release-el7-7.noarch.rpm
[root@mysql-server ~]# yum -y install yum-utils //安装yum工具包
3、配置yum源
[root@mysql-server ~]# vim /etc/yum.repos.d/mysql-community.repo
//修改如下
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch
enabled=1 #主要是把这里修改成1
...[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch
enabled=0 #主要是把这里修改成0
...//1表示开启,0表示关闭或者
[root@mysql-server ~]# yum-config-manager --enable mysql57-community //将禁用的yum源库启用
[root@mysql-server ~]# yum-config-manager --disable mysql80-community //将启用的yum源库禁用
//这种方式可以用在安装mysql脚本中,非常方便!!
4、安装数据库
[root@mysql-server ~]# yum install -y mysql-community-server
//默认是安装最新版本的
[root@mysql-server ~]# mysql -V
mysql Ver 14.14 Distrib 5.7.43, for Linux (x86_64) using EditLine wrapper
//启动服务
[root@mysql-server ~]# systemctl start mysqld
[root@mysql-server ~]# netstat -ntlp|grep mysql
tcp6 0 0 :::3306 :::* LISTEN 9948/mysqld
//设置开机启动
[root@mysql-server ~]# systemctl enable mysqld
5、查找密码
//密码保存在日志文件中
[root@mysql-server ~]# grep password /var/log/mysqld.log
2023-10-10T11:32:08.314934Z 1 [Note] A temporary password is generated for root@localhost: _!2g*Hb/:R.D
6、修改密码
两种方式:
第一种:登录数据库后操作
[root@mysql-server ~]# mysql -uroot -p'_!2g*Hb/:R.D' //登录
...
mysql> alter user 'root'@'localhost' identified by 'Jlting@123';
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye[root@mysql-server ~]# mysql -uroot -p'Jlting@123'
...
mysql>
第二种:免入库修改密码,直接在命令行中修改
mysqladmin -u root -p’旧密码’ password ‘新密码’
注:修改密码必须要有大小写、数字和特殊符号,因为mysql默认有密码策略。
如果忘记密码了,可以在配置文件中加上一行配置,跳过密码验证
[root@localhost ~]# vim /etc/my.cnf
[mysqld] //在mysqld标签下
skip-grant-tables //添加这一行,跳过密码验证
//意思就是跳过授权表,即可以跳过密码验证直接进入数据库
//修改完配置文件需要重启服务才能生效
[root@localhost ~]# systemctl restart mysqld
[root@localhost ~]# mysql -uroot -p
Enter password: //直接回车
...
mysql>
二、编译安装方式
编译安装也叫源码安装
与二进制(RPM)发行版本相比,如果我们选择了通过源代码进行安装,那么在安装过程中我们能够对MySQL所做的调整将会更多更灵活一些。因为通过源代码编译我们可以:
a、针对自己的硬件平台选用合适的编译器来优化编译后的二进制代码;
b、根据不同的软件平台环境调整相关的编译参数;
c、针对我们特定应用场景选择需要什么组件不需要什么组件;
d、根据我们的所需要存储的数据内容选择只安装我们需要的字符集(utf-8);
e、同一台主机上面可以安装多个MySQL;
在源码安装给我们带来更大灵活性的同时,同样也给我们带来了可能引入的隐患:
a、对编译参数的不够了解造成编译参数使用不当可能使编译出来的二进制代码不够稳定;
b、对自己的应用环境把握失误而使用的优化参数可能反而使系统性能更差;
c、还有一个并不能称之为隐患的小问题就是源码编译安装将使安装部署过程更为复杂,所花费的时间更长;
1、清理安装环境
[root@mysql-server ~]# yum erase -y mariadb mariadb-server mariadb-libs mariadb-devel
[root@mysql-server ~]# userdel -r mysql
[root@mysql-server ~]# rm -rf /etc/my*
[root@mysql-server ~]# rm -rf /var/lib/mysql
2、创建mysql用户
[root@mysql-server ~]# useradd -r mysql -M -s /bin/false
参数解释
-r 参数表示创建系统用户。系统用户不需要登录shell。并且会分配高的UID号 mysql 指定要创建的用户账号名。
-M 参数表示不创建用户主目录。
-s 参数指定用户的登录shell,/bin/false 表示不允许登录。
3、从官网下载tar包
[root@mysql-server ~]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.27.tar.gz
或:
[root@mysql-server ~]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.34.tar.gz
4、安装编译工具
[root@mysql-server ~]# yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make cmake
5、创建mysql目录
[root@mysql-server ~]# mkdir -p /usr/local/mysql
6、解压
[root@mysql-server ~]# tar xzvf mysql-boost-5.7.27.tar.gz -C /usr/local/
注:如果安装的MySQL5.7及以上的版本,在编译安装之前需要安装boost,因为高版本mysql需要boots库的安装才可以正常运行。否则会报CMake
Error at cmake/boost.cmake:81错误
mysql-boost-5.7.27.tar.gz该安装包里面自带boost包
7、编译安装
//cd 解压的mysql目录开始编译安装
[root@mysql-server ~]# cd /usr/local/mysql-5.7.27/
[root@mysql-server mysql-5.7.27]# cmake . \
-DWITH_BOOST=boost/boost_1_59_0/ \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DINSTALL_MANDIR=/usr/share/man \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1
//提示:boost也可以使用如下指令自动下载,如果不下载boost压缩包,把下面的这一条添加到配置中第二行
-DDOWNLOAD_BOOST=1/
参数详解:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ //安装目录
-DSYSCONFDIR=/etc \ //配置文件存放 (默认可以不安装配置文件)
-DMYSQL_DATADIR=/usr/local/mysql/data \ //数据目录,错误日志文件也会在这个目录
-DINSTALL_MANDIR=/usr/share/man \ //帮助文档
-DMYSQL_TCP_PORT=3306 \ //默认端口
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ //sock文件位置,用来做网络通信的,客户端连接服务器的时候用
-DDEFAULT_CHARSET=utf8 \ //默认字符集。字符集的支持,可以调
-DEXTRA_CHARSETS=all \ //扩展的字符集支持所有的
-DDEFAULT_COLLATION=utf8_general_ci \ //默认字符集为utf8;默认校对规则为utf8_general_ci
-DWITH_READLINE=1 \ //上下翻历史命令
-DWITH_SSL=system \ //使用私钥和证书登陆(公钥) 可以加密。 适用与长连接。坏处:速度慢
-DWITH_EMBEDDED_SERVER=1 \ //编译并启用嵌入式MySQL服务器
-DENABLED_LOCAL_INFILE=1 \ //从本地倒入数据,不是备份和恢复。
-DWITH_INNOBASE_STORAGE_ENGINE=1 //编译并启用InnoDB存储引擎,支持外键[root@mysql-server mysql-5.7.27]# make && make install
如果安装出错,想重新安装:不用重新解压,只需要删除安装目录中的缓存文件CMakeCache.txt需要很长的时间!大约半小时!!
8、初始化:初始化只需要初始化一次!
[root@mysql-server mysql-5.7.27]# cd /usr/local/mysql
[root@mysql-server mysql]# chown -R mysql.mysql .
[root@mysql-server mysql]# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
//--user=mysql:指定mysqld服务器运行的用户为mysql
//--basedir=/usr/local/mysql:指定MySQL的安装目录
//--datadir=/usr/local/mysql/data:指定MySQL数据文件存放的目录
初始化完成之后,一定要记住提示最后的密码用于登陆或者修改密码!!!编辑mysql配置文件
[root@mysql-server ~]# vim /etc/my.cnf
//将文件中所有内容注释掉在添加如下内容
[client]
port = 3306
socket = /tmp/mysql.sock
default-character-set = utf8
[mysqld]
port = 3306
user = mysql
basedir = /usr/local/mysql //指定安装目录
datadir = /usr/local/mysql/data //指定数据存放目录
socket = /tmp/mysql.sock
character_set_server = utf8
//参数详解:
[client]
#客户端默认连接端口
port = 3306
#用于本地连接的socket套接字
socket = /tmp/mysql.sock
#编码
default-character-set = utf8
[mysqld]
#服务端口号,默认3306
port = 3306
#mysql启动用户
user = mysql
#mysql安装根目录
basedir = /usr/local/mysql
#mysql数据文件所在位置
datadir = /usr/local/mysql/data
#为MySQL客户端程序和服务器之间的本地通讯指定一个套接字文件
socket = /tmp/mysql.sock
#数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
character_set_server = utf8
9、启动mysql
[root@mysql-server ~]# cd /usr/local/mysql
[root@mysql-server mysql]# ./bin/mysqld_safe --user=mysql &
//mysqld_safe脚本的作用是:先检查一些参数然后使用--user指定的用户来启动mysqld服务并监控mysqld服务,一旦mysqld宕机就会自动重新启动
//查看端口
[root@mysql-server mysql]# netstat -ntlp|grep 3306
tcp6 0 0 :::3306 :::* LISTEN 22226/mysqld
10、登录mysql
[root@mysql-server mysql]# /usr/local/mysql/bin/mysql -uroot -p'zSRB*h)z+58o'
//一定要有引号,单引和双引都可以!!!因为有一些特殊字符需要被定义为一个整体的字符串
//不加引号的结果:
[root@mysql-server mysql]# /usr/local/mysql/bin/mysql -uroot -pzSRB*h)z+58o
-bash: 未预期的符号 `)' 附近有语法错误
//登录后的界面
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.27 #数据库版本号
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> exit
11、修改密码
[root@mysql-server mysql]# /usr/local/mysql/bin/mysqladmin -u root -p'zSRB*h)z+58o' password 'JLTing@22897'
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
//并不是报错,而是警告,告诉你密码在命令行中明文显示有风险
12、添加环境变量
[root@mysql-server mysql]# vim /etc/profile ---添加如下
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin
//参数解释:$PATH :表示使用当前已经设置的PATH值。PATH值是系统找可执行程序(binaries)和脚本(scripts)的路径(路径列表);执行这条命令就可以保留当前已经设置的PATH路径(例如:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin)
[root@mysql-server bin]# echo $PATH //可以用这个命令查看当前设置路径值
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
// $HOME/bin : 用户的 bin目录,通常包含用户自己安装的命令。
// /usr/local/mysql/bin :MySQL可执行文件的路径。
[root@mysql-server mysql]# source /etc/profile
//之后就可以在任何地方使用mysql命令登陆Mysql服务器
[root@mysql-server bin]# mysql
mysql mysql_config_editor mysqlimport mysql_ssl_rsa_setup
[root@mysql-server mysql]# mysql -uroot -p'JLTing@22897'
...
mysql> show databases; //注意是复数形式
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql>exit //或使用\q也能退出
13、配置mysqld服务的管理工具
[root@mysql-server mysql]# cd /usr/local/mysql/support-files/
[root@mysql-server support-files]# cp mysql.server /etc/init.d/mysqld
//mysql.server:MySQL服务器初始化及启动、停止脚本
//设置开机自启
[root@mysql-server support-files]# chkconfig --add mysqld
//--add 参数表示添加一个服务到 chkconfig管理中
[root@mysql-server support-files]# chkconfig mysqld on
//可以使用以下命令查看开机自启是否设置成功
[root@mysql-server support-files]# systemctl is-enabled mysqld.service
mysqld.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig mysqld --level=5
enabled
//或者使用以下命令也可以:
[root@mysql-server support-files]# chkconfig --list mysqld
注:该输出结果只显示 SysV 服务,并不包含 原生 systemd 服务。SysV 配置数据 可能被原生 systemd 配置覆盖。
要列出 systemd 服务,请执行 ‘systemctl list-unit-files’。查看在具体 target 启用的服务请执行’systemctl list-dependencies [target]'。
mysqld 0:关 1:关 2:开 3:开 4:开 5:开 6:关
表示MySQL已经设为在运行级别2、3、4、5自动启动。
//先将原来的进程杀掉
[root@mysql-server support-files]# pkill mysqld
//或者
[root@mysql-server support-files]# ps -ef|grep mysql
//再kill对应的pid
//启动mysqld
[root@mysql-server support-files]# /etc/init.d/mysqld start
Starting MySQL. SUCCESS!
[root@mysql-server support-files]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp6 0 0 :::3306 :::* LISTEN 22656/mysqld
//停止mysqld
[root@mysql-server support-files]# /etc/init.d/mysqld stop
Shutting down MySQL.. SUCCESS!
14、托管到systemd服务管理工具中启动服务
[root@mysql-server ~]# vim /lib/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000 //设置操作系统默认允许mysql进程最大打开文件的数量
参数解释
[Unit]:以systemd为基础的Linux系统中每个服务的类别
Description: 给MySQL服务提供一个描述 After: 设置MySQL依赖的服务是network.target,即网络服务
[Service]:服务配置模块
Type: 将MySQL服务的类型设置为forking,即有子进程
ExecStart:用/etc/rc.d/init.d/mysqld start来启动MySQL服务
ExecReload:用/etc/rc.d/init.d/mysqld restart来重启MySQL服务
ExecStop:用/etc/rc.d/init.d/mysqld stop来停止MySQL服务
PrivateTmp:给MySQL分配私有的临时文件夹
[Install]:
WantedBy: 设置MySQL服务属于multi-user.target,即属于多用户目标。
重新加载systemd系统和服务管理器。当修改systemd的服务文件时(比如mysqld.service文件),需要使用systemctl daemon-reload
来让修改生效。
[root@mysql-server ~]# systemctl daemon-reload
[root@mysql-server ~]# systemctl restart mysqld
[root@mysql-server ~]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp6 0 0 :::3306 :::* LISTEN 22924/mysqld
[root@mysql-server ~]# systemctl enable mysqld.service
Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service to /usr/lib/systemd/system/mysqld.service.
[root@mysql-server ~]# systemctl is-enabled mysqld.service
enabled
至此,数据库编译安装完成!
三、二进制安装方式
二进制安装和编译安装的区别:编译安装需要经过自行编译过后,才能得到二进制(可执行)文件,而二进制安装是直接下载官网已经编译好的二进制文件(executables和libraries),直接使用即可,无需自己编译
1、下载二进制包
[root@mysql-server ~]# wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.41-linux-glibc2.12-x86_64.tar.gz
2、添加用户
[root@mysql-server ~]# groupadd -g 27 mysql && useradd -g 27 -u 27 -M -s /sbin/nologin mysql
[root@mysql-server ~]# id mysql
uid=27(mysql) gid=27(mysql) 组=27(mysql)
[root@mysql-server ~]# tar xzvf mysql-5.7.41-linux-glibc2.12-x86_64.tar.gz -C /usr/local
[root@mysql-server ~]# mv /usr/local/mysql-5.7.41-linux-glibc2.12-x86_64 /usr/local/mysql
//授权属主和属组
[root@mysql-server ~]# chown -R mysql:mysql /usr/local/mysql
//创建日志文件并授权
[root@mysql-server ~]# touch /var/log/mysql.log && chown mysql:mysql /var/log/mysql.log
3、编辑配置文件
[root@mysql-server ~]# vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/data/mysql.sock
port=3306
default-storage-engine = innodb
innodb_large_prefix=on
innodb_file_per_table = on
max_connections = 10000
collation-server = utf8_general_ci
character_set_server=utf8
user=mysql
[client]
port = 3306
socket = /usr/local/mysql/data/mysql.sock
default-character-set = utf8
[mysqld_safe]
log-error=/var/log/mysql.log
参数解释
[mysqld] //mysql服务相关的配置
basedir=/usr/local/mysql #MySQL安装目录
datadir=/usr/local/mysql/data #数据库数据文件存放目录
socket=/usr/local/mysql/data/mysql.sock #MySQL使用的Unix socket文件路径;mysql socket的作用:用于应用程序间的通信。让本地客户端优先使用socket文件连接,获得更好的性能。限制只有有权限访问该socket文件的进程才能连接MySQL,提高安全性
port=3306 #MySQL监听的TCP/IP 端口号
default-storage-engine = innodb #默认的存储引擎,这里使用的是Innodb
innodb_large_prefix=on #启用Innodb的大VARCHAR和TEXT列,开启后支持更长的列和索引;不开启此参数时,InnoDB支持的VARCHAR最大长度为255字节,TEXT最大长度为65535字节。开启此参数后,InnoDB支持的VARCHAR最大长度提升到65535字节,TEXT最大长度提升到163830字节。
innodb_file_per_table = on #开启每个表使用单独的表空间文件
max_connections = 10000 #最大允许的并发连接数
collation-server = utf8_general_ci #设置MySQL服务器(全局)的默认字符集和校对规则。utf8:表示字符集为utf8,可以表示绝大部分的国际字符;_general_ci:表示校对规则为utf8_general_ci, 其中:general:表示最常用的比较规则,ci:表示忽略字符大小写(case insensitive)
character_set_server=utf8 #设置了MySQL服务器(整个实例)的默认字符集。
//MySQL支持很多种字符集,例如:utf8:多字节字符集,支持绝大部分国际字符latin1:单字节字符集,只支持西欧语言字符gbk:支持简体中文字符big5:支持繁体中文字符
user=mysql //MySQL服务运行的用户
[client] //客户端配置
port = 3306 #(在[client]部分)表示客户端连接MySQL时使用的端口
socket = /usr/local/mysql/data/mysql.sock #(在[client]部分)表示客户端连接MySQL时使用的Unix socket文件路径
default-character-set = utf8 #(在[client]部分) 表示客户端连接时使用的默认字符集
[mysqld_safe] //[mysqld_safe]部分是针对MySQL的mysqld_safe启动脚本的配置
log-error=/var/log/mysql.log #指定mysqld_safe脚本的日志文件路径为/var/log/mysql.log。
4、添加环境变量
[root@mysql-server ~]# cat >>/etc/profile<<EOF
export PATH=\${PATH}:/usr/local/mysql/bin
EOF
[root@mysql-server ~]# source /etc/profile
//或者
[root@mysql-server ~]# echo 'export PATH=${PATH}:/usr/local/mysql/bin'>>/etc/profile
[root@mysql-server ~]# source /etc/profile
//或者
[root@mysql-server ~]# ln -s /usr/local/mysql/bin/mysql /usr/sbin/mysql[root@mysql-server ~]# whereis mysql
mysql: /usr/lib64/mysql /usr/local/mysql /usr/share/mysql /usr/local/mysql/bin/mysql
[root@mysql-server ~]# which mysql
/usr/local/mysql/bin/mysql
5、初始化数据库,产生随机初始登录密码,在最后一行
[root@mysql-server ~]# mysqld --initialize --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --user=mysql
2023-10-10T12:28:00.554234Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2023-10-10T12:28:00.706131Z 0 [Warning] InnoDB: New log files created, LSN=45790
2023-10-10T12:28:00.742466Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2023-10-10T12:28:00.805015Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 738e9da6-6768-11ee-b446-000c295e8b83.
2023-10-10T12:28:00.805493Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2023-10-10T12:28:01.103679Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher.
2023-10-10T12:28:01.103693Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher.
2023-10-10T12:28:01.104128Z 0 [Warning] CA certificate ca.pem is self signed.
2023-10-10T12:28:01.195887Z 1 [Note] A temporary password is generated for root@localhost: )E7Pb?a!odyr
6、添加启动脚本
[root@mysql-server ~]# vim /usr/lib/systemd/system/mysql.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
#设置操作系统默认允许mysql进程最大打开文件的数量
7、更新自启动服务,查看工作端口
#重新加载systemd管理器的unit配置文件
[root@mysql-server ~]# systemctl daemon-reload
[root@mysql-server ~]# systemctl enable --now mysql.service
[root@mysql-server ~]# systemctl restart mysql
[root@mysql-server ~]# systemctl enable mysql
[root@mysql-server ~]# netstat -ntpl | grep "3306"
8、登录
[root@mysql-server ~]# mysql -u root -p')E7Pb?a!odyr'
9、修改登录密码
mysql> alter user 'root'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.00 sec)mysql> update mysql.user set password_expired='N'; //设置mysql库中的user表中的password_expired为No,意思就是设置密码不过期
Query OK, 0 rows affected (0.00 sec)
Rows matched: 3 Changed: 0 Warnings: 0mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
[root@mysql-server ~]# mysql -u root -p123456
为了方便后续使用,建议将三种安装方式写成脚本!
相关文章:
MySQL三种安装方法(yum安装、编译安装、二进制安装)
mysql安装 一、yum安装方式二、编译安装方式三、二进制安装方式 切记:一定要关闭防火墙和selinux!!! 服务器配置:2C4G即可,一台 一、yum安装方式 mysql的官方网站:www.mysql.com 中文官网&…...

《视觉 SLAM 十四讲》第 7 讲 视觉里程计1 【如何根据图像 估计 相机运动】【特征点法】
github源码链接V2 文章目录 第 7 讲 视觉里程计17.1 特征点法7.1.1 特征点7.1.2 ORB 特征FAST 关键点 ⟹ \Longrightarrow ⟹ Oriented FASTBRIEF 描述子 7.1.3 特征匹配 7.2 实践 【Code】本讲 CMakeLists.txt 7.2.1 使用 OpenCV 进行 ORB 的特征匹配 【Code】7.2.2 手写 O…...

9. 一个SpringBoot项目运行
新手如何运行一个SpringBoot项目 1.SpringBoot项目运行 新创建的SpringBoot项目如何运行 2.启动lombok注解 点击该按钮,启动lombok注解支持 3.展示说明...

如何实现chatGPT批量问答,不用token
一、背景 因为需要批量提取一本教材里的概念做成知识图谱,想用chatGPT做概念提取。 调用api?别想了… 免费帐户的api慢得一批于是想用模仿人类交互的方法来调用,本来想用pyautogui的,但是主要是与浏览器交互,还是用s…...
Arduino驱动LIS2DH三轴加速度传感器(惯性测量传感器篇)
目录 1、传感器特性 2、硬件原理图 3、控制器和传感器连线图 4、驱动程序 LIS2DH加速度计相对传统的ADXL345在稳定性以及功耗上都有一定的优化,低功耗模式下仅为2μA(普通模式11μA),并且最高支持5.3KHz输出频率,拥有2g/4g/8g/16g四档可选量程&...

B 开组会(可持久线段树+树剖) 武汉大学2023年新生程序设计竞赛(同步赛)
其实题目就是每次询问一个节点 在这个节点的基础上往下继续遍历t的深度,在这个遍历的过程中找一个最大值就行了 其实这个题目数据非常水,直接暴力就可以过了 下面是别人过的代码 #include<bits/stdc.h> using namespace std; const int mxn5e…...
vue的axios方法
Axios是Vue.js推荐使用的一个基于Promise的HTTP库,用于浏览器和Node.js中发送HTTP请求。它可以让我们更容易地与后端进行数据交互。 以下是Axios的基本用法: 安装Axios 在Vue项目中,可以使用npm来安装Axios: npm install axio…...

gitlab docker部署,备份,恢复。附踩坑记录
本次安装在CentOS7下进行 1、安装yum 检查是否已经安装yum yum --version如果未安装 sudo yum install -y yum-utils添加镜像源: 国外镜像源:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo阿里镜像源&am…...

2023品牌新媒体矩阵营销洞察报告:流量内卷下,如何寻找增长新引擎?
近年来,随着移动互联网的发展渗透,短视频、直播的兴起,新消费/新零售、兴趣电商/社交电商等的驱动下,布局线上渠道已成为绝大多数品牌的必然选择。 2022年,越来越多的品牌加入到自运营、自播的行列中,并且从…...

HarmonyOS/OpenHarmony原生应用-ArkTS万能卡片组件Toggle
组件提供勾选框样式、状态按钮样式及开关样式。该组件从API Version 8开始支持。 仅当ToggleType为Button时可包含子组件。 一、接口 Toggle(options: { type: ToggleType, isOn?: boolean }) 从API version 9开始,该接口支持在ArkTS卡片中使用。 参数: Toggle…...

redis,mongoDB,mysql,Elasticsearch区别
Redis: Redis是一种高性能键值存储数据库,基于内存操作,支持数据持久化,支持数据类型丰富灵活,如字符串、哈希、列表、集合、有序集合等。Redis还提供了订阅/发布、事务、Lua脚本、主从同步等功能,适用于访…...
什么是软件测试架构师?
软件测试架构师是一个新职位,但确实是一个非常必要的职位,主要有几点: 1. 根据V模型、广义测试概念等,(静态)测试的越早,发现缺陷越早,越有利于产品的质量、加快产品开发周期、降低企业的成本。更重要预防…...

安科瑞ARB5系列弧光保护装置,智能电弧光保护,保障用电安全
安科瑞虞佳豪壹捌柒陆壹伍玖玖零玖叁 什么是弧光 电弧是放电过程中发生的一种现象,当两点之间的电压超过其工频绝缘强度极限时就会发生。当适当的条件出现时,一个携带着电流的等离子产生,直到电源侧的保护设备断开才会消失。空气在通常条件…...

查找算法——二分查找法
一、介绍 首先需要将查找的数据排好序,再进行二分查找法来进行查找,二分查找是将数据范围不断分割为两份,不断比较中间值与待查找值的大小来确定其在哪个区间范围的一种方法。例如:在一组数据(1,4ÿ…...

大数据——Spark Streaming
是什么 Spark Streaming是一个可扩展、高吞吐、具有容错性的流式计算框架。 之前我们接触的spark-core和spark-sql都是离线批处理任务,每天定时处理数据,对于数据的实时性要求不高,一般都是T1的。但在企业任务中存在很多的实时性的任务需求&…...

graphviz 绘制二叉树
代码 digraph BalancedBinaryTree {node [fontname"Arial", shapecircle, stylefilled, color"#ffffff", fillcolor"#0077be", fontsize12, width0.7, height0.7];edge [fontname"Arial", fontsize10, color"#333333", arr…...

STM32 PA15/JTDI 用作普通IO,烧录口不能使用问题解决
我们一般用SW调试接口 所以DEBUG选择Serial Wire 这样PA15可以用作普通IO使用。 工程中默认加上: PA13(JTMS/SWDIO).ModeSerial_Wire PA13(JTMS/SWDIO).SignalDEBUG_JTMS-SWDIO PA14(JTCK/SWCLK).ModeSerial_Wire PA14(JTCK/SWCLK).SignalDEBUG_JTCK-SWCLK...
【ARM Coresight 系列文章 9 -- ETM 介绍 1】
文章目录 ARM Coresight ETM 介绍1.1.1 ARM Coresight ETM 版本介绍1.1.2 ARM Coresight 常见术语1.2 ARM Coresight ETM 常用寄存器介绍1.2.1 TRCVIIECTLR(ViewInst Include-Exclude Control Register)1.2.2 TRCVISSCTLR(ViewInst Start/Stop Processing Element Comparator C…...

设计模式 - 中介者模式
目录 一. 前言 二. 实现 三. 优缺点 一. 前言 中介者模式又叫调停模式,定义一个中介角色来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变它们之间的交互。 中介者模式可以使对象之间的关系数量急剧减少࿰…...

HttpServletRequest对象与RequestDispatcher对象
一、HttpServletRequest对象 1.介绍 在Servlet API中,定义了一个HttpServletRequest接口,它继承自ServletRequest接口,专门用来封装HTTP请求消息。由于HTTP请求消息分为请求行、请求消息头和请求消息体三部分,因此,在…...

通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...

HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...

C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...

MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...

Golang——6、指针和结构体
指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...
苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会
在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...

零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程
STM32F1 本教程使用零知标准板(STM32F103RBT6)通过I2C驱动ICM20948九轴传感器,实现姿态解算,并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化,适合嵌入式及物联网开发者。在基础驱动上新增…...