文章目录
本篇文章总结如何在阿里云上安装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:
- /etc/my.cnf
- /etc/mysql/my.cnf
- /usr/local/mysql/etc/my.cnf
- ~/.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