1、先在浏览器搜索mysql,也可直接搜索www.mysql.com
浏览器下载太慢可把下载链接复制放到迅雷去加速下载。
下载完成得到mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz类似的一个压缩包。
2、将下载好的mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz(压缩包以自己实际下载版本为准)上传到自己服务器的 /usr/local/ 文件夹下面。
3、检查服务器是否已经安装mysql或者mariadb,有可能服务器自带了mysql或者mariadb服务器
检查是否存在mysql或者mariadb
rpm -qa | grep mysql
rpm -qa | grep mariadb
如果存在,则卸载
rpm -e -nodeps mysql mariadb(后面两项填写实际查询出来的信息)
删除了包之后,查看是否有残余的文件夹
find / -name mysql
find / -name mariadb
如果存在,则删除
rm -rf xxx xxx xxx(xxx是文件地址,可以输入多个,直接从find / -name mysql 搜索出来的复制粘贴即可)
4、解压压缩文件,
tar -xvJf mysql-8.0.19-linux-x86_64-minimal.tar.xz (切记linux区分大小写,J必须使用大写)
如果上传的路径不在/usr/local下面,可命令后增加-C(大写C) /usr/local
既可。
5、删除我们压缩包,且把解压之后的文件改名为mysql
rm -rf mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz
mv mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz mysql (这个命令在/usr/local下执行)
6、创建一个文件夹,保存我们的数据文件等信息
mkdir -p /data/mysql/data -p参数递归创建
7、检查是否存在mysql用户和mysql组
查看组 cat /etc/group | grep mysql
查看用户 cat /etc/passwd | grep mysql
如果我们的用户和组都不存在,则创建组和用户
创建组groupadd mysql
创建用户useradd -s /sbin/nologin -r -g mysql mysql
-s:指定用户登入后所使用的shell。
-r:系统级用户
-g:所属分组为mysql
8、把data目录所属用户和组改为mysql。 chown -R mysql:mysql /data (第二个mysql为用户组,-R表示递归)
chown -R mysql:mysql /usr/local/mysql
9、先创建my.cnf文件再执行初始化操作
touch /etc/my.cnf 创建配置文件
mkdir /etc/my.cnf.d
编辑配置文件vim /etc/my.cnf
没有vim命令的可使用 yum -y install vim,仅限centos,vi命令也可。
[client]
default-character- set = utf8 #默认字符集
port = 3306
socket=/data/mysql/mysql.sock
[mysqld]
port=3306
server-id=3306
user = mysql
basedir= /usr/local/mysql # 安装目录
datadir=/data/mysql/data # 数据存放目录
log-bin=/data/mysql/mysql-bin
innodb_data_home_dir=/data/mysql/mysql #告诉mysql在哪里创建InnoDB表空间
innodb_log_group_home_dir =/data/mysql/data #InnoDB 日志文件的路径
[mysqld_safe] #日志及进程数据的存放目录
log-error=/data/log/mysql-log/error.log # 启动异常日志文件
pid-file=/data/mysql/mysql.pid # 程序启动的pid文件
character-set-server=utf8mb4 # 服务端使用的字符集默认为8比特编码
lower_case_table_names=1 #让mysql不区分大小写
max_connections = 3000 #指定mysql服务所允许的最大连接进程数
max_connect_errors = 1000 #每个主机连接允许异常中断的次数
10、接下来执行初始化,/usr/local/mysql必须在该路径执行
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql/data/ (这是一个完整命令不可分割)
初始化成功如下图所示: 最后面部分就是初始密码
如有报错按照实际情况排查,报错情况可能不同。
11、到/usr/local目录下启动下服务
mkdir -p /data/log/mysql-log
touch /data/log/mysql-log/error.log
chown -R mysql:mysql /data/log 修改所属用户和用户组
/usr/local/mysql/support-files/mysql.server start 在/usr/local下执行这条命令,看到success即为成功执行
12、复制启动文件到etc/init.d文件下,并赋予权限
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
13添加到系统服务,并设置为打开状态
chkconfig --add mysqld
chkconfig mysqld on
接下来启动mysql服务
service mysqld start
确定是否启动成功可使用 systemctl status mysqld 查看是否running状态
14登陆mysql
cd /usr/local/mysql
我遇到的报错是这种情况:Can't connect to local MySQL server through socket '/tmp/mysql.sock'
rm -rf /tmp/mysql.sock 删除mysql.sock
ln -s /data/mysql/mysql.sock /tmp/mysql.sock 创建软链接
15、接下来尝试使用Navicat远程连接数据库实现图形化,连接之前建议关闭防火墙或者开放3306端口,最好是开放3306端口,更符合实际工作情况。
没有修改mysql内容就会出现下面类似报错,如下所示:
在服务器上登陆mysql使用命令行执行如下语句
show databases;
use mysql;
update user set Host='%' where User='root';
flush privileges;
出现连接成功,既可使用Navicat进行图形化操作mysql。如下图所示: