Linux CENTOS安装mysql8 64位

1. 查看系统中是否已经安装了mariadb 执行:yum list installed | grep mariadb
若已经存在,则删除 执行: yum remove mariadb

2.下载需要安装的压缩文件,从官网下载,文件为名字为 mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz
该文件是tar.xz后缀。需要tar xvJf 解压

3.将压缩文件解压到/usr/local/目录下
tar xvJf xxx.tar.xz 由于此处使用的是tar.gz文件,要使用该命令
解压后文件位于/usr/local目录下,并修改文件夹名称 mysql8
在这里插入图片描述
4.将 /usr/local/mysql8/bin 这个路径追加到etc/profile文件的PATH中,若PATH已配置了其他的,则追加
如下所示:

export JAVA_HOME=/opt/jdk1.8.0_121
 
export JRE_HOME=${JAVA_HOME}/jre
 
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
 
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
 
export PATH=$PATH:${JAVA_PATH}:$PATH:/usr/local/mysql8/bin

由于此处已经配置了JAVA_HOME JRE_HOME CLASSPATH JAVA_PATH PATH ,只需要在PATH中添加:/usr/local/mysql8/bin
再执行source profile,重新载入该配置文件即可生效。这样就能在linux中调用mysql命令

5.mysql --version 查看安装的mysql版本
显示如下

[root@VM-0-8-centos local]# mysql --version
mysql  Ver 8.0.31 for Linux on x86_64 (MySQL Community Server - GPL)
[root@VM-0-8-centos local]#

6.创建用户组、用户
创建用户组:groupadd
创建用户:useradd(-r 创建系统用户,-g 指定用户组)
执行如下代码:创建用户组,并将新建的用户添加到用户组里面

groupadd mysql
useradd -r -g mysql mysql

7.创建存放mysql数据的目录 放在 /data/mysql8_data下
mkdir -p /data/mysql8_data
该目录是用于存放数据的,而mysql的安装目录在/usr/local/mysql8目录下
8.赋予权限
将mysql存放数据的目录修改拥有者和组权限,以前是root用户root组,修改后是mysql用户,mysql组

chown -R mysql:mysql /data/mysql8_data

再修改目录和文件的访问权限

chmod -R 750 /data/mysql8_data

9.初始化和启动
(1)在 /usr/local/etc/ 下创建 my.cnf 配置文件,用于初始化 MySQL 数据库,在启动时候,需要指明启动mysql服务时调用的是哪一个配置文件,后面有说明。

在本地先准备一个文件my.cnf
内容如下,也可以可先建立文件,再将内容复制到文件里,若文件内容较多,可以分多次拷贝。

[mysql]
# 默认字符集
default-character-set=utf8mb4
[client]
port       = 3306
socket     = /tmp/mysql.sock
[mysqld]
port       = 3306
server-id  = 3306
user       = mysql
socket     = /tmp/mysql.sock
# 安装目录
basedir    = /usr/local/mysql8
# 数据存放目录
datadir    = /data/mysql8_data/mysql
log-bin    = /data/mysql8_data/mysql/mysql-bin
innodb_data_home_dir      =/data/mysql8_data/mysql
innodb_log_group_home_dir =/data/mysql8_data/mysql
# 日志及进程数据的存放目录
log-error =/data/mysql8_data/mysql/mysql.log
pid-file  =/data/mysql8_data/mysql/mysql.pid
# 服务端字符集
character-set-server=utf8mb4
lower_case_table_names=1
autocommit =1
##### 以上涉及文件夹明,注意修改
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 1024
sort_buffer_size = 4M
net_buffer_length = 8K
read_buffer_size = 4M
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 64M
thread_cache_size = 128
#query_cache_size = 128M
tmp_table_size = 128M
explicit_defaults_for_timestamp = true
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
binlog_format=mixed
binlog_expire_logs_seconds =864000
# 创建表时使用的默认存储引擎
default_storage_engine = InnoDB
innodb_data_file_path = ibdata1:10M:autoextend
innodb_buffer_pool_size = 1024M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
transaction-isolation=READ-COMMITTED
[mysqldump]
quick
max_allowed_packet = 16M
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 4M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout

--------------------------------------说明----------------------------------------
简介: lower_case_table_names 是mysql设置大小写是否敏感的一个参数。

1.参数说明:
lower_case_table_names=0 表名存储为给定的大小和比较是区分大小写的
lower_case_table_names = 1 表名存储在磁盘是小写的,但是比较的时候是不区分大小写
lower_case_table_names=2 表名存储为给定的大小写但是比较的时候是小写的
unix,linux下lower_case_table_names默认值为 0 .Windows下默认值是 1 .Mac OS X下默认值是 2

2.查看方法:
进入mysql命令行 执行以下任一语句查看:
show variables like ‘lower_case_table_names’;
select @@lower_case_table_names;

更改数据库参数文件my.cnf来修改该属性我的值。
在mysqld下 添加或修改 lower_case_table_names = 1
之后重启数据库,只能通过文件的方式进行修改
--------------------------------------说明----------------------------------------

(2)初始化
需要进入 /usr/local/mysql/bin,若添加了 PATH 变量可忽略。本人已经添加了PATH配置了mysql的bin路径指向,可以在linux中执行mysql的命令
初始化命令如下:

--defaults-file:指定配置文件(要放在--initialize 前面)
--user: 指定用户
--basedir:指定安装目录
--datadir:指定初始化数据目录
--intialize-insecure:初始化无密码(否则生成随机密码)

执行如下代码即可:

mysqld --defaults-file=/usr/local/etc/my.cnf --basedir=/usr/local/mysql8 --datadir=/data/mysql8_data/mysql --user=mysql --initialize-insecure

(3)启动MySql
查看 MySQL 的 /bin 下是否包含 mysqld_safe,用于后台安全启动 MySQL,经过查看确实有,位置如下

[root@VM-0-8-centos bin]# pwd
/usr/local/mysql8/bin
[root@VM-0-8-centos bin]# ls
ibd2sdi         my_print_defaults    mysqld         mysql_migrate_keyring      mysql_upgrade
innochecksum    mysql                mysqld-debug   mysqlpump                  perror
lz4_decompress  mysqladmin           mysqld_multi   mysql_secure_installation  zlib_decompress
myisamchk       mysqlbinlog          mysqld_safe    mysqlshow
myisam_ftdump   mysqlcheck           mysqldump      mysqlslap
myisamlog       mysql_config         mysqldumpslow  mysql_ssl_rsa_setup
myisampack      mysql_config_editor  mysqlimport    mysql_tzinfo_to_sql
[root@VM-0-8-centos bin]# 

启动mysql,并读取制定的配置文件,命令如下:

/usr/local/mysql8/bin/mysqld_safe --defaults-file=/usr/local/etc/my.cnf &

若添加了PATH变量,可省略如下

mysqld_safe --defaults-file=/usr/local/etc/my.cnf &

在这里插入图片描述
查看mysql服务是否启动成功

ps -ef|grep mysql

在这里插入图片描述
(4)登录
mysql -uroot -p 输入密码的时候直接回车进入mysql
在这里插入图片描述
(5)修改密码
由于mysql8和mysql5版本的不同他们的加密策略也不同,所以要将mysql8的策略改一下,保证navicate能远程登录。
首次修改:
MySQL 初始化的 root 用户、新创建的用户,都需要设置首次密码。建议使用本地密码插件 mysql_native_password。

# 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

# 刷新权限
FLUSH PRIVILEGES;

平时修改:可在 Linux 或 MySQL 中修改。

Linux 命令行    mysqladmin -u用户名 -p旧密码 password 新密码
登录mysql后命令执行
# 设置密码
SET PASSWORD FOR '用户名'@'主机' = PASSWORD(‘密码');

# 刷新权限
FLUSH PRIVILEGES;

(6)关闭MySql服务
在linux 中 执行 mysqladmin -uroot -p shutdown 回车后输入密码即可


远程连接MySql
首先进入 mysql 数据库,查看当前用户user表

USE mysql;

SELECT user,host,plugin,authentication_string FROM user;

在这里插入图片描述
host 字段 表示可访问当前数据库的主机,目前仅本地可访问。


然后创建用户,以供任意远程访问

# 创建用户
CREATE user 'root'@'%';

# 设置首次密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

# 授权用户所有权限,刷新权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
FLUSH PRIVILEGES;

再次查看时候,发现已创建一个可被任意远程主机访问的 root 用户,如下图
在这里插入图片描述


为了安全考虑需要将防火墙开启,开放端口3306供远程访问

开放端口:默认端口号 3306

查看端口状态:no 表示未开启
firewall-cmd --query-port=3306/tcp

永久开放端口:
firewall-cmd --add-port=3306/tcp --permanent

重启防火墙:
systemctl restart firewalld

备注:查看mysql端口:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荒--

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值