操作系统:Ubuntu20.04
使用工具:xshell7、xftp7
MySQL版本:5.7
如果没有找到Mariadb直接跳过
- #查找Mariadb
- rpm -qa | grep mariadb

自带的mariadb
删除Mariadb
yum -y remove mariadb-libs-5.5.68-1.el7.x86_64
最后可以在检查一遍是否删除
官网下载:https://downloads.mysql.com/archives/community/
下载方式1(用xftp):官网下载到本地用xftp上传到服务器
下载方式2(用wget): 右键Download复制链接地址
- #如果没有wget命需安装
- sudo yum -y install wget
-
- #mysql在线下载,后面地址为右键复制的链接
- wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
百度网盘链接:https://pan.baidu.com/s/1qjBKWJAZZOW1WbSxjS3GXA?pwd=cfp5
提取码:cfp5

创建mysql目录并解压到指定文件夹
- #解压文件
- tar -zxvf mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
-
- #移动文件夹并重命名
- mv mysql-5.7.38-linux-glibc2.12-x86_64 /usr/local/mysql
创建mysql用户组和用户并修改权限
- groupadd mysql
- useradd -r -g mysql mysql
创建数据目录并赋予权限
- mkdir -p /data/mysql #创建目录
- chown mysql:mysql -R /data/mysql #赋予权限
配置my.cnf
vim /etc/my.cnf
添加以下内容
- [mysqld]
- bind-address=0.0.0.0
- port=3306
- user=mysql
- basedir=/usr/local/mysql
- datadir=/data/mysql
- socket=/tmp/mysql.sock
- log-error=/data/mysql/mysql.err
- pid-file=/data/mysql/mysql.pid
- #character config
- character_set_server=utf8mb4
- symbolic-links=0
- explicit_defaults_for_timestamp=true
初始化数据库并查看密码
- #进入mysql的bin目录
- cd /usr/local/mysql/bin/
-
- #初始化
- ./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
-
- #查看密码
- cat /data/mysql/mysql.err

- #先将mysql.server放置到/etc/init.d/mysql中
- cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
没启动MySQL时:
service mysql status
- root@iZm5e9phbzdxx0lysrv9t2Z:~# service mysql status
- ● mysql.service - LSB: start and stop MySQL
- Loaded: loaded (/etc/init.d/mysql; generated)
- Active: inactive (dead)
- Docs: man:systemd-sysv-generator(8)
-
- Dec 02 15:57:00 iZm5e9phbzdxx0lysrv9t2Z systemd[1]: Stopped LSB: start and stop MySQL.
- Dec 02 15:57:53 iZm5e9phbzdxx0lysrv9t2Z systemd[1]: Starting LSB: start and stop MySQL...
- Dec 02 15:57:53 iZm5e9phbzdxx0lysrv9t2Z mysql[2578]: Starting MySQL
- Dec 02 15:57:54 iZm5e9phbzdxx0lysrv9t2Z mysql[2578]: . *
- Dec 02 15:57:54 iZm5e9phbzdxx0lysrv9t2Z systemd[1]: Started LSB: start and stop MySQL.
- Dec 02 16:01:01 iZm5e9phbzdxx0lysrv9t2Z systemd[1]: Stopping LSB: start and stop MySQL...
- Dec 02 16:01:01 iZm5e9phbzdxx0lysrv9t2Z mysql[2960]: Shutting down MySQL
- Dec 02 16:01:03 iZm5e9phbzdxx0lysrv9t2Z mysql[2960]: .. *
- Dec 02 16:01:03 iZm5e9phbzdxx0lysrv9t2Z systemd[1]: mysql.service: Succeeded.
- Dec 02 16:01:03 iZm5e9phbzdxx0lysrv9t2Z systemd[1]: Stopped LSB: start and stop MySQL.
- root@iZm5e9phbzdxx0lysrv9t2Z:~#
- root@iZm5e9phbzdxx0lysrv9t2Z:~# ps aux | grep mysql
- root 3373 0.0 0.0 9032 720 pts/1 S+ 16:05 0:00 grep mysql
- root@iZm5e9phbzdxx0lysrv9t2Z:~#
启动MySQL:
- #启动mysql
- service mysql start
- root@iZm5e9phbzdxx0lysrv9t2Z:~# service mysql start
- root@iZm5e9phbzdxx0lysrv9t2Z:~#
- root@iZm5e9phbzdxx0lysrv9t2Z:~# ps aux | grep mysql
- root 3407 0.0 0.0 2608 1700 ? S 16:06 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/mysql.pid
- mysql 3637 0.8 8.9 1096848 181272 ? Sl 16:06 0:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/mysql.err --pid-file=/data/mysql/mysql.pid --socket=/tmp/mysql.sock --port=3306
- root 3669 0.0 0.0 9032 724 pts/1 S+ 16:06 0:00 grep mysql
- root@iZm5e9phbzdxx0lysrv9t2Z:~#
- root@iZm5e9phbzdxx0lysrv9t2Z:~# service mysql status
- ● mysql.service - LSB: start and stop MySQL
- Loaded: loaded (/etc/init.d/mysql; generated)
- Active: active (running) since Fri 2022-12-02 16:06:20 CST; 1min 7s ago
- Docs: man:systemd-sysv-generator(8)
- Process: 3382 ExecStart=/etc/init.d/mysql start (code=exited, status=0/SUCCESS)
- Tasks: 28 (limit: 2314)
- Memory: 171.3M
- CGroup: /system.slice/mysql.service
- ├─3407 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/mysql.pid
- └─3637 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/mysql.err --p>
-
- Dec 02 16:06:19 iZm5e9phbzdxx0lysrv9t2Z systemd[1]: Starting LSB: start and stop MySQL...
- Dec 02 16:06:19 iZm5e9phbzdxx0lysrv9t2Z mysql[3382]: Starting MySQL
- Dec 02 16:06:20 iZm5e9phbzdxx0lysrv9t2Z mysql[3382]: . *
- Dec 02 16:06:20 iZm5e9phbzdxx0lysrv9t2Z systemd[1]: Started LSB: start and stop MySQL.
启动MySQL成功【如果显示Failed to start mysql.service: Unit mysql.service not found.重启服务器】
进入Mysql安装目录
- root@iZm5e9phbzdxx0lysrv9t2Z:~# cd /usr/local/mysql
- root@iZm5e9phbzdxx0lysrv9t2Z:/usr/local/mysql# ls
- bin docs include lib LICENSE man README share support-files
- root@iZm5e9phbzdxx0lysrv9t2Z:/usr/local/mysql# bin/mysql -u root -p
- Enter password:
如果不希望每次都到bin目录下使用mysql命令则执行以下命令
ln -s /usr/local/mysql/bin/mysql /usr/bin
在任意目录下都可以通过 mysql -u root -p 来登陆mysql
- wyr@iZm5e9phbzdxx0lysrv9t2Z:~$ mysql -u root -p
- Enter password:

登陆后如果不修改密码就开始操作MySQL,会出现如下提示:
- mysql> show databases;
- ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
- mysql>
更改密码:
- SET PASSWORD = PASSWORD('123456');
- ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
- FLUSH PRIVILEGES;
- use mysql #访问mysql库
- update user set host = '%' where user = 'root'; #使root能再任何host访问
- FLUSH PRIVILEGES; #刷新
放行3306端口让外部连接
- #3306 代表端口号
- firewall-cmd --zone=public --add-port=3306/tcp --permanent
-
- #刷新生效
- firewall-cmd --reload

最后使用navicat连接

- #查看MySQL状态
- service mysql status
-
- #启动MySQL
- #service mysql start
-
- #重启MySQL
- service mysql reload