近来要使用窗口函数,而且要用到mysql8版本,所以在这记录一下Linux下安装MySQL8步骤。
本文以CentOS7为例linux xz 解压命令,详尽教你怎样在Linux下安装MySQL-8.0.19。
安装的mysql版本是:mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz。
使用root权限操作。
第一步:下载
两种形式
形式一:
步入官网:
上图显示第一个是二补码源码包,第二个是二补码测试包,第三个是源码包。
我们选择第一个二补码版本的mysql是早已编译好的,无需configure、makemakeinstall等步骤,只需配置一下即可使用,卸载也便捷,直接删掉即可。可以自行调整编译参数,最大化地定做安装结果。
下载以后linux查看硬件信息,通过ssh工具sftp/ftp形式上传到你服务器centos7指定的目录即可/usr/local/。
方法二:
在你要放置安装包的目录下执行命令:
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz
第二步:解压并联通
首先说一下,联通不是必须的,并且我旁边的配置里有指定文件目录,但是在Mac上安装mysql默认也会放在/usr/local,所有最好按我的来。
xz格式拓展知识:tar-Jxvfmysql-8.0.19-linux-glibc2.12-x86_64.tar.xz
解压 xz 格式文件
方法一:
需要用到两步命令:
xz-utils 的 xz 命令将 linux-3.12.tar.xz 解压为 linux-3.12.tar,
tar 命令将 linux-3.12.tar 完全解压。
xz -d linux-3.12.tar.xz
tar -xf linux-3.12.tar
方法二(推荐)
tar -Jxf linux-3.12.tar.xz
创建 xz 格式文件
方法一:
也是用到两步命令:
tar 命令将 linux-3.12 文件夹打包成 linux-3.12.tar
xz-utils 的 xz 命令将 linux-3.12.tar 压缩成 linux-3.12.tar.xz。
tar -cf linux-3.12.tar linux-3.12/
xz -z linux-3.12.tar
方法二(推荐)
tar -Jcf linux-3.12.tar.xz linux-3.12/
解压(假如是.xz格式可以使用tar-Jxvfmysql-8.0.19-linux-glibc2.12-x86_64.tar.xz)
tar -zxvf mysql-8.0.19-linux-glibc2.12-x86_64.tar.gz
联通(若上传的地方不是/uar/local/路径可以用mv命令联通)
mv mysql-8.0.19-linux-glibc2.12-x86_64 /usr/local/
更名和软联接,二选一
①重命名
mv mysql-8.0.19-linux-glibc2.12-x86_64 mysql8
②软联接命令:
ln -s mysql-8.0.19-linux-glibc2.12-x86_64 mysql8
第三步
创建用户,赋于数据目录权限
创建mysql组和用户
groupadd mysql useradd -r -g mysql mysql
创建mysql数据目录/回到根目录
cd / && mkdir -p /data/mysql8_data/
赋于权限
chown mysql:mysql -R /data/mysql8_data
chmod 750 /data/mysql8_data/ -R
为了防止在使用MySQL时总是必须键入顾客端程序的路径名,可以将/usr/local/mysql/bin目录添加到PATH变量中:
export PATH=$PATH:/usr/local/mysql8/bin
第四步:f配置参数
创建用于初始化mysql数据库时f配置文件
默认读取配置文件的次序:
Defaultoptionsarereadfromthefollowingfilesinthegivenorder:
1./etc/f2./etc/mysql/f
3./usr/local/mysql/etc/f4.~/.f
vim/etc/f之后,按i步入编辑模式linux xz 解压命令,把下边内容复制进去:
[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 = /usr/local/mysql8
# 设置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
编辑完后按esc后按住shift+:输入wq表示保存并退出:wq!
第五步:初始化mysql
cd /usr/local/mysql8/bin
#一行
./mysqld --defaults-file=/usr/local/etc/my.cnf --basedir=/usr/local/mysql8 --datadir=/data/mysql8_data/mysql --user=mysql --initialize
参数说明
1.1
--initialize 初始化生成临时密码
临时密码登录
mysql -u root -p
输入服务器在初始化序列期间生成的随机临时密码:
1.2
--initialize-insecure 初始化时无密码
无密码登录
mysql -u root --skip-password
2.
ALTER USER 'root'@'localhost' IDENTIFIED with mysql_native_password BY '你的新密码';
flush privileges; #刷新权限
#首次改密推荐使用本地密码插件with mysql_native_password
3.创建访问用户及主机ip
如果你配置时使用了skip_name_resolve,要创建一下127.0.0.1用户及主机ip
CREATE USER 'root'@'127.0.0.1' IDENTIFIED BY '你的新密码';
创建远程访问用户任意ip
CREATE USER 'root'@'%' IDENTIFIED BY '你的新密码';
查看mysql.log初始密码,复制下来
cat /data/mysql8_data/mysql/mysql.log
第六步
启动mysql,并修改root密码
启动
安全后台启动:(假如您的安装包含mysqld_safelinux多线程,则像这样启动MySQL服务器)
bin/mysqld_safe --defaults-file=/usr/local/etc/my.cnf &
./mysqld_safe --defaults-file=/usr/local/etc/my.cnf &
倘若您的安装包含systemd支持,请按以下方法启动服务器:
systemctl {start|stop|restart|status} mysqld
service命令,如果MySQL服务名称不是mysqld,请使用适当的名称。例如,
mysqld在基于Debian的系统和SLES系统上使用。
:
systemctl daemon-reload
systemctl restart mysqld
使用与System V系统兼容的service命令(具有相反的参数):
service mysqld {start|stop|restart|status}
查看是否启动
ps -ef|grep mysql #查看mysql 进程
netstat -ano |grep "3306" #查看3306端口
修改密码
提示输入密码,把刚刚临时的密码粘过来。
cd /usr/local/mysql8/bin
./mysql -u root -p
password:输入临时密码
2.无密码时登录
./mysql -u root --skip-password
之后执行更改密码与root用户,主机hostip,并刷新权限:
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; #刷新权限
更改具体用户远程访问
CREATE USER 'root'@'127.0.0.1' IDENTIFIED with mysql_native_password BY '123456'; 创建'root'@'127.0.0.1'用户
flush privileges; #===> 记住刷新权限
select user,host,plugin,authentication_string from user;
===============57以后===================
update user set authentication_string=password("test") where user='root';
update mysql.user set host='你要指定的主机ip' where user='root';
============以下5.7以前======================
2 或者
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 新密码
3 或进入mysql命令行
SET PASSWORD FOR '用户名'@'主机' = PASSWORD(‘密码');
flush privileges;
添加账户,分配特权和删掉账户
use mysql;
#创建新用户及密码
CREATE USER 'root'@'localhost' IDENTIFIED with mysql_native_password BY '新密码';
FLUSH PRIVILEGES;
CREATE USER 'root'@'%' IDENTIFIED with mysql_native_password BY '123456';
FLUSH PRIVILEGES;
CREATE USER 'mysql'@'%' IDENTIFIED with mysql_native_password BY '123456';
CREATE USER 'test'@'%' IDENTIFIED with mysql_native_password BY '123456';
#给用户授权
GRANT ALL ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION;
GRANT ALL ON *.* TO 'mysql'@'%' WITH GRANT OPTION;
GRANT ALL ON *.* TO 'test'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
select user,host,plugin,authentication_string from user;
#撤消test数据库级特权
REVOKE CREATE,DROP ON test.* FROM 'test'@'%';
FLUSH PRIVILEGES;
#删除帐户
DROP USER 'test'@'%';
FLUSH PRIVILEGES;
创建远程访问新用户并授权:
use mysql;
#mysql8==>不允许<==授权并创建用户了,要分开使用
grant all privileges on *.* to '新用户名'@'%' identified by '密码' with grant option;
grant all privileges on *.* to '新用户名'@'指定ip' identified by '密码' with grant option;
例如:以前使用
grant all privileges on *.* to 'root'@'%' identified by "123456" with grant option;
mysql8分开操作为:
CREATE ROLE 'root'@'%'; #创建角色CREATE USER 'root'@'%' IDENTIFIED BY '123456';
ALTER USER 'root'@'%' IDENTIFIED with mysql_native_password by '123456'; #修改密码
grant all privileges on *.* to "root"@"%"; #给角色授权
flush privileges; #刷新权限
#另外修改主机
update mysql.user set host='具体要指定的主机ip' where user='root';
RENAME USER 'jeffrey'@'localhost' TO 'jeff'@'127.0.0.1'; #重命名
flush privileges; #刷新权限
select user,host,authentication_string from user;
注意
1.确保用户名和密码正确
2.确保开放3306端口并开启防火墙serviceiptablesstart
到这儿就结束了,若果想退出mysql>quit或则exit,关掉mysql执行servicemysqldstop。
创建开机自启动mysql服务
#确保my.cnf在路径/etc/my.cnf
cd /usr/local/mysql8/
cp support-files/mysql.server /etc/rc.d/init.d/mysqld #错误 unit not found
chmod +x /etc/init.d/mysql
chkconfig --add mysqld
chkconfig --level 345 mysqld on
cd /usr/local/mysql8/
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
mysqld start
mysqld stop
mysqld restart
mysqld reload
注意事项
假如以上步骤有权限问题,可执行以下命令,还有把开启自起打开
出现unitnotfound可以检测/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 #查询出的版本
窗口函数:
mysql8部份删掉内容:
与账户管理相关的以下功能已删掉:
发放福利
种下一棵树
最好的时间是10年前
其次是现今
学习也一样
本文原创地址:https://www.linuxprobe.com/lxazmbzxxjcc.html编辑:刘遄,审核员:暂无