linux -- 部署java服务器(2) linux安装mysql

前言

  本系列(部署java服务器)一共由四个部分组成

  1.安装jdk

  2.安装mysql

  3.安装redis

  4.安装nginx

  mysql8源码版是无需make的,它的使用步骤是:下载-》解压-》第一次启动配置-》启动

  完全按照本文配置是不会抛出任何异常的,如果出现了异常,请优先检查配置文件,90%的可能是配置项是拼写错误。(血的教训)

1进入目标文件夹

//创建mysql文件
mkdir  /opt/mysql
//进入mysql 文件,并在文件下创建两个文件目录db_data
cd /opt/mysql
mkdir db_data //这个用来存储我们的数据库文件,稍后会用到

2下载

  我们下载最新版的8版本mysql下载官网

//在 /opt/mysql 中下载mysql8.0源码
mwget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.25-linux-glibc2.12-x86_64.tar.xz //这里使用mwget 下载更快,如何去安装mwget,我的上一篇文章有写

3解压

tar mysql-8.0.25-linux-glibc2.12-x86_64.tar.xz //解压
mv mysql-8.0.25-linux-glibc2.12-x86_64 mysql //改个名字,方便操作 一定要下载与自己系统版本对应的包

4增加初始化mysql的配置文件

//第一次启动mysql之前必需要进行初始化。初始化需要的参数可以通过在新建一个/etc/my.cnf 文件来赋予
//新建一个my.cnf文件 这一步可以在window上先编写好之后,在通过ftp工具放在etc目录下
#请注意这里是mysql(l是L的小写不是i的大写I)d
[mysqld]
# 指定当前mysql用户
user=root
# 设置3306端口
port=3306
# 设置mysql的安装目录--也就是你的mysql安装包的解压目录
basedir=/opt/mysql/mysql
# mysql数据存放位置
datadir=/opt/mysql/db_data
# 确保在整个Mysql集群中唯一
server-id = 1                             
# 日志存放位置
log-bin = /opt/mysql/logs/mysql-bin.log     
log-bin-index = binlog.index
# 错误信息存放位置
log-error = /opt/mysql/err-logs/mysql_error.log #临时密码如果没有在终端输出的话,可以在这里面去找
# 允许最大连接数
max_connections=10000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
# 注意这里如果使用utf8的话会报一个警告,因为utf8现在代表的是UTF8MB3,但是下一个版本会是UTF8MB4。但是不影响
character-set-server=UTF8MB4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=UTF8MB4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=UTF8MB4
//然后将它放置到/etc目录下 

5根据配置文件创建对应目录,并且赋予文件夹读写权限(启动mysql的时候,将会读写一些东西,这里必须将相关的文件夹赋予权限)

//创建mysql需要的一些目录(这个和第4步的配置文件的配置要一致)
//数据存储目录
mkdir /opt/mysql/mysql/db_data 
//mysql启动日志目录存放目录
mkdir /opt/mysql/mysql/logs
//mysql运行中出现的错误日志存放目录  
mkdir /opt/mysql/mysql/err-logs
//赋予对应目录权限
chmod -R 777 /opt/mysql/mysql/err-logs /opt/mysql/mysql/logs /opt/mysql/mysql/db_data //-R 是递归赋予的意思

6初始化mysql的一些参数

//进入mysql的bin目录
cd /opt/mysql/mysql/bin
//使用bin目录下的mysqld程序初始化
./mysqld --initialize --console

  这里会出现一段这个信息

  

  请注意root@localhost:之后的 #HZZfN=G<2?M 是你的临时密码,要记好。这是随机的,并且第一次登陆需要靠他。如果没有出现这段信息,那是因为mysql把它输出到了我们配置的日志输出的目录/opt/mysql/err-logs/mysql_error.log

8另一种赋予mysql初始化参数的方法 (不推荐)

//在你使用mysqld --initialize --console 的时候可以添加一些选项
./mysqld --initialize --console --datadir //指定mysql数据文件放置目录,效果和my.cnf中的一样,如果同时设置了,则这种方式的优先级会高于my.cnf中的优先级

9启动mysql

//进入/opt/mysql/mysql/support-files目录
cd /opt/mysql/mysql/support-files
//运行 启动:start 重启:restart 停止:stop 查看mysql转态:status
./mysql.server start 

10结果

 看到success 就表明成功了,这里出现了一个错误 表示日志启动失败了,但是mysql还是成功启动

11修改密码

  //在网上看了很多种修改密码的方法,大部分都有问题,这里记录一个唯一生效的方法

//登录进入mysql
/opt/mysql/mysql/bin/mysql -uroot -p //注意这里是mysql而非mysqld

//如果出现下面错误


//解决方法
 执行:sudo ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5

...这里需要你输入临时密码

//出现下面的内容表示成功进入mysql //输入以下语句 ALTER USER root@localhost IDENTIFIED BY '123456'; //注意 ; 号必须要,否则mysql会认定你的语句没有输入结束,回车之后只会换行,不会执行 //修改完成后会出现
//退出,并重启登录实验密码是否修改成功
exit

12注意的点

  1.如果你照着上面的步骤,操作仍未启动成功!那么十有八九十因为权限的问题导致的,可以尝试在启动失败之后再次调用第四步。赋予对应的文件夹权限,然后再次启动mysql

13一些技巧

  (1)可以在/etc/ini.d中添加启动配置,那么就无需每次启动都进入/opt/mysql/mysql/support-files去调用mysql.server了

//将/opt/mysql/mysql/support-files/mysql.server启动服务文件拷贝到etc/init.d/目录下
 cp mysql.server /etc/rc.d/init.d/mysqld
//添加一个启动服务
chkconfig --add mysqld //注意这里mysqld 服务名一定要和你放在/etc/rc.d/init.d/mysqld 的服务文件一致,不然当你使用service服务的时候,会找不到启动服务文件
//通过service 启动
 service mysqld start //等效于/opt/mysql/mysql/support-files/mysql.server start

 14 可能遇到的问题

  在这篇文章中,记录了上诉方法,从mysql安装远程链接使用遇到的一些问题,如果你也遇到了,那么可能会在这里的得到答案

原文地址:https://www.cnblogs.com/wrhbk/p/14769473.html