linux服务器安装mysql8.0 的详细步骤

清清楚楚16步 linux服务器安装mysql8.0 安排的明明白白

  • 0.下载tar包:
  • 1.现在在 /usr/local下 创建mysql文件夹
  • 2.切换到mysql文件夹下 cd mysql
  • 3.通过xft或者RZ命令将包传进去。
  • 4.包有了之后,解压出来
  • 5. 改一下文件名字方便后安装失败糊涂了需要卸载,太长了也不方便使用
  • 6.进入解压后的数据库安装包,创建data文件夹
  • 7. 然后创建mysql的用户和用户组以及修改mysql用户的密码
  • 8.授权用户
  • 9.切换到bin目录下面,进行初始化,会初始化密码在@loaclhost里面
  • 10.然后编辑my.cnf文件,注释mysqld_safe 下面是我的参数,仅做参考
  • 11.配置文件改好了之后,然后修改数据库服务的配置文件
  • 12将数据库的服务添加到系统并授权
  • 13.然后现在就可以启动mysql的服务了
  • 14.将mysql命令添加到服务
  • 15.登陆mysql修改密码,并使密码立即生效
  • 16.选择数据库,修改远程连接并生效
    • 1. 查看防火墙状态
    • 2. 关闭防火墙
    • 3. 开启防火墙
    • 4. 重启防火墙
    • 查询端口号3306 是否开启
  • 附件:了解常见的mysql配置文件含义

请先主要看图片 我放的命令没有图片中的全,耐心一点!!就按着我的路径来,先不要创新!基本就会特别顺利!

0.下载tar包:

在 win10 下先下载包
https://dev.mysql.com/downloads/mysql/

我下载的是mysql-8.0.17-linux-glibc2.12-x86_64.tar.xz

1.现在在 /usr/local下 创建mysql文件夹

mkdir mysql

2.切换到mysql文件夹下 cd mysql

3.通过xft或者RZ命令将包传进去。

4.包有了之后,解压出来

 tar -xvJf mysql-8.0.17-linux-glibc2.12-x86_64.tar.xz

5. 改一下文件名字方便后安装失败糊涂了需要卸载,太长了也不方便使用

mv mysql-8.0.17-linux-glibc2.12-x86_64 mysql8.0

6.进入解压后的数据库安装包,创建data文件夹

7. 然后创建mysql的用户和用户组以及修改mysql用户的密码

groupadd mysql
Useradd -g mysql mysql
Passwd mysql

创建用户及用户组

  • 用户组
groupadd mysql
  • 用户 (用户名/密码)
useradd -g mysql mysql

提示报少于8个字符没关系 再输入一次确认回车就行了!

8.授权用户

chown -R mysql:mysql /usr/local/mysql/mysql8.0

9.切换到bin目录下面,进行初始化,会初始化密码在@loaclhost里面

完整代码:

 ./bin/mysqld --user=mysql --basedir=/usr/local/mysql/mysql8.0/ --datadir=/usr/local/mysql/mysql8.0/data/ --initialize ;

10.然后编辑my.cnf文件,注释mysqld_safe 下面是我的参数,仅做参考

直接 vim /etc/my.cnf编辑或者新建配置文件

如果说自己文件夹不存在my.cnf的话 ,自己建一个就行。如果不存在,就会默认新建!!

要是搞不清楚除了显示配置之外还需要的配置,可以将原来的my.cnf备份一份!(用之前传入压缩包的工具直接复制出来备份就行)

然后全部复制我的配置内容修应该需要的部分。

# Example MySQL config file for small systems. 
# 
# This is for a system with little memory (<= 64M) where MySQL is only used 
# from time to time and it's important that the mysqld daemon 
# doesn't use much resources. 
# 
# MySQL programs look for option files in a set of 
# locations which depend on the deployment platform. 
# You can copy this option file to one of those 
# locations. For information about these locations, see: 
# http://dev.mysql.com/doc/mysql/en/option-files.html 
# 
# In this file, you can use all long options that a program supports. 
# If you want to know which options a program supports, run the program 
# with the "--help" option. 

# The following options will be passed to all MySQL clients 
[client]  
default-character-set=utf8  
#password = your_password 
port        = 3306 
socket      = /tmp/mysql.sock  

# Here follows entries for some specific programs 

# The MySQL server 
[mysqld]  

#配置mysql的文件夹 和 mysql data目录
basedir=/usr/local/mysql/mysql8.0
datadir=/usr/local/mysql/mysql8.0/data
default-storage-engine=INNODB  
character-set-server=utf8  
collation-server=utf8_general_ci  
port        = 3306 
socket      = /tmp/mysql.sock  
skip-external-locking  
key_buffer_size = 16K  
max_allowed_packet = 1M  
table_open_cache = 4 
sort_buffer_size = 64K  
read_buffer_size = 256K  
read_rnd_buffer_size = 256K  
net_buffer_length = 2K  
thread_stack = 128K  

# Don't listen on a TCP/IP port at all. This can be a security enhancement, 
# if all processes that need to connect to mysqld run on the same host. 
# All interaction with mysqld must be made via Unix sockets or named pipes. 
# Note that using this option without enabling named pipes on Windows 
# (using the "enable-named-pipe" option) will render mysqld useless! 
# 
#skip-networking 
server-id   = 1 

# Uncomment the following if you want to log updates 
#log-bin=mysql-bin 

# binary logging format - mixed recommended 
#binlog_format=mixed 

# Causes updates to non-transactional engines using statement format to be 
# written directly to binary log. Before using this option make sure that 
# there are no dependencies between transactional and non-transactional 
# tables such as in the statement INSERT INTO t_myisam SELECT * FROM 
# t_innodb; otherwise, slaves may diverge from the master. 
#binlog_direct_non_transactional_updates=TRUE 

# Uncomment the following if you are using InnoDB tables 
#innodb_data_home_dir = /usr/local/mysql/data 
#innodb_data_file_path = ibdata1:10M:autoextend 
#innodb_log_group_home_dir = /usr/local/mysql/data 
# You can set .._buffer_pool_size up to 50 - 80 % 
# of RAM but beware of setting memory usage too high 
#innodb_buffer_pool_size = 16M 
#innodb_additional_mem_pool_size = 2M 
# Set .._log_file_size to 25 % of buffer pool size 
#innodb_log_file_size = 5M 
#innodb_log_buffer_size = 8M 
#innodb_flush_log_at_trx_commit = 1 
#innodb_lock_wait_timeout = 50 

[mysqldump]  
quick  
max_allowed_packet = 16M  

[mysql]  
no-auto-rehash  
# Remove the next comment character if you are not familiar with SQL 
#safe-updates 

[myisamchk]  
key_buffer_size = 8M  
sort_buffer_size = 8M  

[mysqlhotcopy]  
interactive-timeout 

按esc 英文输入法下打出
然后输入x 即可保存退出

11.配置文件改好了之后,然后修改数据库服务的配置文件

vim /usr/local/mysql/mysql8.0/support-files/mysql.server

12将数据库的服务添加到系统并授权

 cp -a ./support-files/mysql.server /etc/init.d/mysql
 chmod 755 /etc/init.d/mysql
 chkconfig --add mysql
 chkconfig --list 可以查看

则说明成功了

13.然后现在就可以启动mysql的服务了

Service mysql start
如果报蓝色方框的错误,又是复制的我的配置文件内容,那么很大很大概率是因为路径配错了 (basedir和datadir)

14.将mysql命令添加到服务

   ln -s /usr/local/mysql/mysql8.0/bin/mysql   /var/bin 

(请注意自己前面填写的路径)

15.登陆mysql修改密码,并使密码立即生效

登录

mysql -uroot -p

输入之前默认生成的密码

若出现mysql未找到命令:那是因为你没把mysql加入到系统环境中

vim /etc/profile 文件,加入如下代码,(也就是配置环境变量)

然后执行 source /etc/profile 命令

再次登录就没问题了

修改root密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '12345678';

其中12345678是新的密码自己设置,执行flush privileges;使密码立即生效;

16.选择数据库,修改远程连接并生效

use mysql;

update user set host='%' where user='root';

flush privileges;

安装就完毕了,下次登陆的时候就用刚才设置的那个密码去登陆。

然后任意环境下测试MySQL登陆,都是可以正常登陆的,至此,mysql安装以及基本配置就结束了!!

此时应该用quit退出数据库 再进行防火墙的操作

请注意此时的linux是可以远程连接的 如果说 连接不上 很大程度是因为防火墙的原因
执行 systemctl stop firewalld.service 即可关闭防火墙!
(首先要确定自己的服务器安装了system)
如果执行systemctl stop firewalld.service报错
判断自己是否安装了systenctl执行systemctl --version
然后应该就可以连接了

安装数据库启动不了的主要问题就是 !配置文件的问题,多多注意一一下

或者说将3306端口加入防火墙( 加入防火墙了以后需要linux重启一下reboot

firewall-cmd --zone=public --add-port=3306/tcp --permanent

这是对命令的解释
## zone --> 作用域
## add-port=80/tcp --> 添加端口,格式为:端口/通讯协议
## permanent --> 永久生效,没有此参数重启后失效

需要在防火墙开启时执行

1. 查看防火墙状态

三条命令都可以用
firewall-cmd --state           
systemctl status firewalld.service 
service firewalld status

2. 关闭防火墙

三条命令都可以用
systemctl stop firewalld.service
systemctl disable firewalld.service
service firewalld stop

3. 开启防火墙

2条命令都可以用
systemctl start firewalld.service
service firewalld start

4. 重启防火墙

两条命令都可以用
firewall-cmd --reload
service firewalld restart

查询端口号3306 是否开启

##查询端口号3306 是否开启
firewall-cmd --query-port=3306/tcp

附件:了解常见的mysql配置文件含义

# MySQL 配置文件,
# 数据库目录 /data/mysql
[client]
port=3306
# mysql socket 文件存放地址
socket=/tmp/mysql.sock
# 默认字符集
default-character-set=utf8
[mysqld]
server-id=1
# 端口
port=3306
# 运行用户
user=mysql
# 最大连接
max_connections=200
socket=/tmp/mysql.sock
# mysql 安装目录(解压后文件的目录)
basedir=/usr/local/mysql
# 数据目录(这里放在我们新建的 /data/mysql 下)
datadir=/data/mysql
pid-file=/data/mysql/mysql.pid
init-connect='SET NAMES utf8'
character-set-server=utf8
# 数据库引擎
default-storage-engine=INNODB
log_error=/data/mysql/mysql-error.log
slow_query_log_file=/data/mysql/mysql-slow.log
# 跳过验证密码
#skip-grant-tables
[mysqldump]
quick
max_allowed_packet=16M
EOF

本文地址:https://blog.csdn.net/qq_43370892/article/details/112579803

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐