本案例为linux安装mysql8.0.27
若非新服务器可先查看是否已安装mysql,若已安装先进行卸载。
1、Linux查看glibc版本信息,下载相应的MYSQL
ldd --version
2、mysql下载
https://downloads.mysql.com/archives/community/
3、安装
linux打开目录:
cd /usr/local
mkdir mysql
cd mysql
下载mysql:
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.27-linux-glibc2.17-x86_64-minimal.tar.xz
解压:
tar -xf mysql-8.0.27-linux-glibc2.17-x86_64-minimal.tar.xz
创建data文件夹:
创建data文件夹 储存文件
创建mysql组
groupadd mysql
创建mysql组,再创建mysql用户并将mysql用户添加到组中
useradd -g mysql mysql
提示之前已创建过。
授权
将mysql文件夹的所有者和所有组都改为mysql
chown -R “mysql组名”.“mysql用户名” “mysql安装根目录”
chown -R mysql.mysql /usr/local/mysql/mysql-8.0.27-linux-glibc2.17-x86_64-minimal
mysql初始化:
进入bin目录执行mysqld文件进行初始化,Linux中的MySQL默认区分表名大小写,那么不区分大小需要在数据库初始化时设置
[--lower-case-table-names=1
],不然初始化后,在配置文件在设置重启时是会报错的。
./mysqld --user=mysql --basedir=/usr/local/mysql/mysql-8.0.27-linux-glibc2.17-x86_64-minimal --datadir=/usr/local/mysql/mysql-8.0.27-linux-glibc2.17-x86_64-minimal/data/ --lower-case-table-names=1 --initialize
初始化完成生成初始密码huC.lE:kY41Z
编辑配置文件my.cnf:
如果没有 my.cnf 文件就通过命令 touch /etc/my.cnf
创建一个
赋予权限编辑文件
sudo vi /etc/my.cnf
[mysqld]
bind-address=0.0.0.0
port=3306
#mysql安装根目录
basedir=/usr/local/mysql/mysql-8.0.27-linux-glibc2.17-x86_64-minimal
#mysql数据文件所在位置
datadir=/usr/local/mysql/mysql-8.0.27-linux-glibc2.17-x86_64-minimal/data
#设置socke文件所在目录
socket=/tmp/mysql.sock
#MySQL8.0 要求 lower-case-table-names 在数据库初始化和启动时的值必须一致
lower_case_table_names=1
#log-error=/usr/local/mysql/mysql.log
#pid-file=/usr/local/mysql/mysql.pid
#character config
#数据库默认字符集, 主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
character_set_server=utf8mb4
#数据库字符集对应一些排序等规则,注意要和character-set-server对应
collation-server = utf8mb4_general_ci
#设置client连接mysql时的字符集,防止乱码
init_connect='SET NAMES utf8mb4
# 时间戳的默认显示值
# explicit_defaults_for_timestamp=true
添加mysqld服务到系统
切换到mysql-8.0.27目录下:
cd /usr/local/mysql/mysql-8.0.27-linux-glibc2.17-x86_64-minimal
cp -a ./support-files/mysql.server /etc/init.d/mysql
授权、添加服务
chmod +x /etc/init.d/mysql
chkconfig --add mysql
启动mysql
service mysql start
查看状态:
service mysql status
将mysql命令添加到系统指令:在任何目录下执行 mysql -uroot -p 进行登录
ln -s /usr/local/mysql/mysql-8.0.27-linux-glibc2.17-x86_64-minimal/bin/mysql /usr/bin
登录mysql
密码为前面随机生成的密码:
mysql -uroot -p
修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'XXXXX';
密码立即生效:
flush privileges;
开启远程权限:
%表示开启远程权限
use mysql;
update user set host='%' where user='root';
flush privileges;
退出mysql:
\q
查看mysql是否开机启动
chkconfig --list
如果 mysql服务的 第3、4、5项都是开着的,则已经开启了开机启动,反之则没有。
如果没有,可以用命令设置开机自启动:
systemctl enable mysqld.service
防火墙状态:
systemctl status firewalld
Linux虚拟机防火墙开放端口号3306,实现MySQL远程连接
查看3306端口状态
firewall-cmd --zone=public --query-port=3306/tcp
如果是no,表示关闭,打开3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
防火墙重载:
firewall-cmd --reload
再次查看3306端口状态:
firewall-cmd --zone=public --query-port=3306/tcp
去navicat测试连接,输入ip和root账户密码,即可成功!