Linux之安装MySQL
1、查看系统当前版本是多少位的
getconf LONG_BIT
2.去官网下载对应的MYSQL安装包
这里下载的是8版本的,位数对应之前的64位
官网地址:https://downloads.mysql.com/archives/community/
3.上传压缩包
4.到对应目录下解压
tar -xvf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
5.压缩包根据不同需要可以选择删了
rm -rf mysql-8.0.26-linux-glibc2.12-x86_64
6.创建数据存放目录和修改解压后的目录名
# 创建存放数据的地方
mkdir data
# 修改解压后的目录名,这里改成了mysql8
mv mysql-8.0.26-linux-glibc2.12-x86_64 mysql8
# 然后把这些挪个规范一些的地方
mv /root/mysql /var/lib/mysql
7.创建用户组和用户
# 创建组
groupadd mysql
# 创建用户
useradd -g mysql mysql
8.改变mysql8目录权限
# 将mysql8给mysql用户和组mysql,前面是用户,后面是组
chown -R mysql:mysql /var/lib/mysql/mysql8/
# 数据存放的地方也要加一下,如果在在你的mysql主目录下面就不用了
chown -R mysql:mysql /var/lib/mysql/data/
9.数据库初始化
注意:
1.要先切入你安装MySQL的主目录
2.初始化可以不指定用户也就是–user=mysql,一般这个都是root干的,可以直接把这个删除
# ./bin/mysqld:这是运行mysqld服务器守护进程的命令路径。如果你是在MySQL的主目录下执行这个命令,那么它会指向MySQL的二进制文件。
# --user=mysql:指定MySQL服务将作为哪个操作系统用户运行。通常这是一个专门为MySQL创建的用户,例如'mysql'。
# --basedir=/var/lib/mysql/mysql8:定义了MySQL安装的基础目录。
# --datadir=/var/lib/mysql/data:指定了数据文件存放的目录。
# --initialize:告诉mysqld以初始化模式启动,并完成必要的初始化任务。
./bin/mysqld --user=mysql --basedir=/var/lib/mysql/mysql8 --datadir=/var/lib/mysql/data --initialize
3.初始化完成记一下密码,比如我这里是:6Vfm?<KM9qtU
10.修改my.cnf文件
vim /etc/my.cnf
[mysqld]
# 基础地址
basedir = /var/lib/mysql/mysql8
# 数据地址
datadir = /var/lib/mysql/data
# sock文件地址
socket = /var/lib/mysql/mysql8/mysql.sock
character-set-server=utf8
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[client]
socket = /var/lib/mysql/mysql8/mysql.sock
default-character-set=utf8
#[mysqld]
#datadir=/var/lib/mysql
#socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
#symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
#[mysqld_safe]
#log-error=/var/log/mariadb/mariadb.log
#pid-file=/var/run/mariadb/mariadb.pid
#
# include all files from the config directory
#
#!includedir /etc/my.cnf.d
11.创建mysql服务
- 将主目录里面的mysql.server复制到/etc/init.d
cp -a /var/lib/mysql/mysql8/support-files/mysql.server /etc/init.d/mysqld
- 赋予执行权限
chmod +x /etc/init.d/mysqld
- 创建mysql服务。
chkconfig --add mysqld
- 检查是否成功
chkconfig --list mysqld
12.配置全局变量
- 编辑profile文件
vim /etc/profile - 在最后加上这一句
# 这个换成你的sql所在的路径
export PATH=$PATH:/var/lib/mysql/mysql8/bin:/var/lib/mysql/mysql8/lib
3. 保存退出
4. 重新加载配置文件
source /etc/profile
- 启动mysql服务看下是否有问题
service mysql start
service mysql status
5.1 如果失败有问题,可能是原来的mysql.service混淆导致的,改个名字
sudo mv /etc/systemd/system/mysql.service /etc/systemd/system/mysql.service.disabled
13. 修改密码
- 这里密码就是之前记得密码
mysql -uroot -p
2. 使用命令
这里就简单设置一下
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
14.使用远程登录
- 切换数据库
use mysql;
- 修改mysql库中host值
update user set host='%' where user='root' limit 1;
- 刷新mysql权限
flush privileges;
- 查看是连接成功
失败:
如果上面连接超时失败,请检查
1、 电脑能否ping通虚拟机,如果不能先解决这个问题
2、打开my.cnf往上面在加一句,让他允许外部链接,然后重启mysql
vim /etc/my.cnf
bind-address = 0.0.0.0
重启
service mysql stop
service mysql start
3、下令防火墙开启3306端口访问,应该就可以了
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload