Linux系统上MySQL Community Server(5.6.46 和 8.0.25版本)下载与安装配置

得意时要看淡,失意时要看开。不论得意失意,切莫大意;不论成功失败,切莫止步。志得意满时,需要的是淡然,给自己留一条退路;失意落魄时,需要的是泰然,给自己觅一条出路Linux系统上MySQL Community Server(5.6.46 和 8.0.25版本)下载与安装配置,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

本篇文章总结如何在阿里云上安装MySQL数据库。

安装MySQL 5.6.46

选择包

从MySQL官网上下载MySQL包。这里选取5.6.46的版本。
https://downloads.mysql.com/archives/community/
在这里插入图片描述
在Download 按钮上,鼠标右键,复制链接。

切记,一定要下载对应机器位数的包,Linux是64位,就下载64位的包。

下载包

在Linux中,使用wget命令下载包。

wget 命令用来从指定的URL下载文件,wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载。这对从那些限定了链接时间的服务器上下载大文件非常有用。

如果没有安装,那么我们就用yum来安装wget:切换到root用户,在命令行中输入yum -y install wget
让它自己安装就可以了 -y 是为了让我们减少输入yes

下载包步骤:

cd /opt/

wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz --user-agent="Mozilla/5.0 (X11;U;Linux i686;en-US;rv:1.9.0.3) Geco/2008092416 Firefox/3.0.3" --no-check-certificate

解压

tar -xzv -f mysql-5.6.46-linux-glibc2.12-i686.tar.gz

重命名

mv mysql-5.6.46-linux-glibc2.12-i686 mysql-5.6.46

MySQL配置操作

1. 进入到mysql目录,执行添加MySQL配置的操作

cp support-files/my-default.cnf /etc/my.cnf

2. 编辑/etc/my.cnf文件

vi /etc/my.cnf

添加下面的内容:

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.

[mysqld]

# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M

# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin

# These are commonly set, remove the # and set as required.
basedir =/opt/mysql-5.6.46
datadir = /opt/mysql-5.6.46/data
port = 3306
# server_id = .....
socket = /tmp/mysql.sock
character-set-server = utf8
skip-name-resolve
log-err = /opt/mysql-5.6.46/data/error.log
pid-file =/opt/mysql-5.6.46/data/mysql.pid

# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

创建mysql用户组及用户

groupadd mysql
useradd -r -s /usr/sbin/nologin -g mysql mysql -d /opt/mysql-5.6.46

当然这里也可以强制使用root 账号运行,运行时加上参数--user=root,就可以不用做下面的访问权限设置了。

在mysql当前目录下设定目录的访问权限

注意后面的小点,表示当前目录

chown -R mysql .
chgrp -R mysql .
scripts/mysql_install_db --user=mysql
chown -R root .
chown -R mysql data

初始化数据

在mysql/bin 或者 mysql/scripts下有个mysql_install_db可执行文件初始化数据库,进入mysql/bin或者mysql/scripts目录下,执行下面命令:

./mysql_install_db --verbose --user=root --defaults-file=/etc/my.cnf --datadir=/opt/mysql-5.6.46/data --basedir=/opt/mysql-5.6.46 --pid-file=/opt/mysql-5.6.46/data/mysql.pid --tmpdir=/tmp

5.7.x之后的版本初始化数据库不再使用mysql_install_db,而是使用: bin/mysqld –initialize.

初始化 MySQL

mysqld --initialize

启动mysql

进入/opt/mysql-5.6.46/mysql/bin目录,执行下面命令:
用推荐的mysqld_safe方式启动,做了安全优化和服务挂了能自动重启等功能

./mysqld_safe --defaults-file=/etc/my.cnf --socket=/tmp/mysql.sock --user=root &

注意,如果光标停留在屏幕上,表示启动成功,需要我们先关闭shell终端,再开启一个新的shell终端,不要执行退出操作。
如果出现 mysql ended这样的语句,表示Mysql没有正常启动,你可以到log中查找问题。

关闭服务

mysqladmin -uroot -p shutdown

然后输入密码,就可以关闭;

设置开机启动

新开启shell中断后,进入mysql目录,执行下面命令

cp /opt/mysql-5.6.46/support-files/mysql.server /etc/init.d/mysqld
cp /opt/mysql-5.6.46/support-files/mysql.server /etc/rc.d/init.d/mysql
chmod 700 /etc/init.d/mysql

chkconfig --add mysqld
# 添加 mysql的服务

chkconfig --list
# 查看列表
# 如果看到mysql的服务,并且3,4,5都是on的话则成功,如果是off,则输入chkconfig --level 345 mysql on

chkconfig --level 2345 mysqld on

chown mysql:mysql -R /opt/mysql-5.6.46/

重启Linux后,就可以看到mysql 启动了。

启动mysql服务

/etc/init.d/mysql start

Starting mysql (via systemctl): mysql.service.

查看mysql状态

service mysql status

其他命令:
service mysql start
service mysql restart
service mysql stop

安装MySQL 8.0.25

root 权限下操作:

下载包

wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.25-linux-glibc2.12-x86_64.tar.xz --user-agent="Mozilla/5.0 (X11;U;Linux i686;en-US;rv:1.9.0.3) Geco/2008092416 Firefox/3.0.3" --no-check-certificate

解压

注意,现在后缀已经变成 tar.xz格式

tar -xJvf mysql-8.0.25-linux-glibc2.12-x86_64.tar.xz

重命名

mv mysql-8.0.25-linux-glibc2.12-x86_64 mysql-8.0.25

权限设置

删除了当前的mysql用户:

userdel mysql
usermod –d /opt/mysql-8.0.25 -m mysql 
不怎么起作用;

创建mysql组和用户

groupadd mysql useradd -r -g mysql mysql
出错:groupadd: invalid group ID 'mysql'

用下面的可以,分2步:
groupadd mysql
useradd -r -g mysql mysql

usermod -s /usr/sbin/nologin mysql

创建mysql数据目录 / 回到根目录

cd / && mkdir -p /data/mysql8_data/

赋予权限

chown -R mysql:mysql /data/mysql8_data
chmod -R 750 /data/mysql8_data/

为了避免在使用MySQL时总是必须键入客户端程序的路径名,可以将/opt/mysql-8.0.25 目录添加到PATH变量中:

export PATH=$PATH:/opt/mysql-8.0.25/bin

配置文件

my.cnf配置参数
创建用于初始化mysql数据库时my.cnf配置文件

默认读取配置文件的顺序:
Default options are read from the following files in the given order:

  1. /etc/my.cnf
  2. /etc/mysql/my.cnf
  3. /usr/local/mysql/etc/my.cnf
  4. ~/.my.cnf

vim /etc/my.cnf然后 按 i 进入编辑模式,把下面内容复制进去

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
port       = 3306
socket     = /tmp/mysql.sock
 
[mysqld]
port       = 3306
server-id  = 3306
user       = mysql
socket     = /tmp/mysql.sock
# 设置mysql的安装目录
basedir    = /opt/mysql-8.0.25
# 设置mysql数据库的数据的存放目录
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
#设置mysql数据库的日志及进程数据的存放目录
log-error =/data/mysql8_data/mysql/mysql.log
pid-file  =/data/mysql8_data/mysql/mysql.pid
# 服务端使用的字符集默认为8比特编码
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

官方指南

https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html

  • To see the values that a server uses based on its compiled-in defaults and any option files that it reads, use this command:
mysqld --verbose --help
  • To see the values that a server uses based only on its compiled-in defaults, ignoring the settings in any option files, use this command:
mysqld --no-defaults --verbose --help

初始化mysql

cd  /opt/mysql-8.0.25/bin
#一行
./mysqld --defaults-file=/etc/my.cnf --basedir=/opt/mysql-8.0.25 --datadir=/data/mysql8_data/mysql --user=mysql --initialize

参数说明
–defaults-file=/etc/my.cnf 指定配置文件(一定要放在最前面,至少 –initialize 前面)
–user=mysql 指定用户(很关键)
–basedir=/opt/mysql-8.0.25 指定安装目录
–datadir=/data/mysql8_data/mysql 指定初始化数据目录

启动mysql

普通启动

进入/opt/mysql-8.0.25/bin目录,执行下面命令:
用推荐的mysqld_safe方式启动,做了安全优化和服务挂了能自动重启等功能

./mysqld_safe --defaults-file=/etc/my.cnf --user=mysql &

注意,如果光标停留在屏幕上,表示启动成功,需要我们先关闭shell终端,再开启一个新的shell终端,不要执行退出操作。
如果出现 mysql ended这样的语句,表示Mysql没有正常启动,你可以到log中查找问题。

可以打开新窗口查看,mysql是否启动成功:

ps -ef|grep -i mysql

或者

mysqld --daemonize

安装成服务启动

进入安装目录:

cp support-files/mysql.server /etc/init.d/mysql.server

service mysql.server start --user=mysql

测试登录及修改密码

临时密码,去/data/mysql8_data/mysql/mysql.log中查看,这个log文件,是在my.cnf中配置的。
关键字如下:

[Server] A temporary password is generated for root@localhost: 

先登录,

1. 
cd /usr/local/mysql8/bin
 ./mysql -u root -p
password:输入临时密码
 
2.无密码时登录
./mysql -u root --skip-password

然后执行修改密码与root用户,主机host ip,并刷新权限

# 1. 查询前,必须要修改密码,如新密码123456:
ALTER USER 'root'@'localhost' IDENTIFIED with mysql_native_password BY '你的新密码';
#刷新权限
flush privileges;
# 首次改密推荐使用本地密码插件with mysql_native_password
 
use mysql;
select user,host,plugin,authentication_string from user;

# 创建用户任意远程访问
CREATE user 'root'@'%';
# 修改密码
alter user 'root'@'%' identified with mysql_native_password by '123456';
 #给用户授权
grant all privileges on *.* to "root"@"%";
#刷新权限
flush privileges;

# 2. 更改具体用户远程访问
# 创建'root'@'127.0.0.1'用户
CREATE USER 'root'@'127.0.0.1' IDENTIFIED with mysql_native_password BY '123456'; 
#===> 记住刷新权限
flush privileges; 

select user,host,plugin,authentication_string from user;
 
===============5.7以后===================
update user set authentication_string=password("test") where user='root';
update mysql.user set host='你要指定的主机ip' where user='root';

============以下5.7以前======================
SET PASSWORD = PASSWORD('123456');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
flush privileges;
select user,host,plugin,authentication_string from user;
============================================

# 退出mysql>
quit;或者exit;

#关闭mysql
shutdown;

# 修改MySQL用户密码
mysqladmin -u用户名 -p旧密码 password 新密码
 
# 或进入mysql命令行
SET PASSWORD FOR '用户名'@'主机' = PASSWORD(‘密码');
flush privileges;

关闭服务

mysqladmin -uroot -p shutdown

然后输入密码,就可以关闭;

创建开机自启动mysql服务

#确保my.cnf在路径/etc/my.cnf 
cd /opt/mysql-8.0.25/bin
cp support-files/mysql.server /etc/rc.d/init.d/mysqld 
#错误 unit not found

cp ./support-files/mysql.server /etc/init.d/mysqld

chmod +x /etc/init.d/mysql
chkconfig --add mysqld 
chkconfig --level 345 mysqld on
 
启动:service mysqld start
停止:service mysqld stop
重启:service mysqld restart
重载配置:service mysqld reload

注意事项:

如果以上步骤有权限问题,可执行以下命令,还有把开启自起打开;
出现unit not found,可以检查/etc/init.d/mysql是否存在, 若否,

find / -name mysql.server

cp /usr/local/mysql8/support-files/mysql.server /etc/init.d/mysql
cp ./support-files/mysql.server /etc/init.d/mysqld
chown 777 /etc/my.cnf 
chmod +x /etc/init.d/mysqld 

还有在安装前如果你的系统有Mariadb,就要卸载
第一条命令用来查看,如果有就用下面的命令卸载

rpm -qa|grep mariadb
rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64 #查询出的版本

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/155705.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!