近来要使用窗口函数,而且要用到mysql8版本,所以在这记录一下Linux下安装MySQL8步骤。

本文以CentOS7为例linux xz 解压命令,详尽教你怎样在Linux下安装MySQL-8.0.19。

安装的mysql版本是:mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz。

使用root权限操作。

第一步:下载

解压命令linuxtar_解压命令linuxzip_linux xz 解压命令

两种形式

形式一:

步入官网:

上图显示第一个是二补码源码包,第二个是二补码测试包,第三个是源码包。

我们选择第一个二补码版本的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

第二步:解压并联通

linux xz 解压命令_解压命令linuxzip_解压命令linuxtar

首先说一下,联通不是必须的,并且我旁边的配置里有指定文件目录,但是在Mac上安装mysql默认也会放在/usr/local,所有最好按我的来。

xz格式拓展知识:tar-Jxvfmysql-8.0.19-linux-glibc2.12-x86_64.tar.xz

1. 解压 xz 格式文件 方法一:需要用到两步命令  首先利用 xz-utils 的 xz 命令将 linux-3.12.tar.xz 解压为 linux-3.12.tar,  其次用 tar 命令将 linux-3.12.tar 完全解压。xz -d linux-3.12.tar.xztar -xf linux-3.12.tar方法二(推荐)tar -Jxf linux-3.12.tar.xz 2. 创建 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_datachmod 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       = 3306socket     = /tmp/mysql.sock [mysqld]port       = 3306server-id  = 3306user       = mysqlsocket     = /tmp/mysql.sock# 设置mysql的安装目录basedir    = /usr/local/mysql8# 设置mysql数据库的数据的存放目录datadir    = /data/mysql8_data/mysqllog-bin    = /data/mysql8_data/mysql/mysql-bininnodb_data_home_dir      =/data/mysql8_data/mysqlinnodb_log_group_home_dir =/data/mysql8_data/mysql#设置mysql数据库的日志及进程数据的存放目录log-error =/data/mysql8_data/mysql/mysql.logpid-file  =/data/mysql8_data/mysql/mysql.pid# 服务端使用的字符集默认为8比特编码character-set-server=utf8mb4lower_case_table_names=1autocommit =1##################以上要修改的########################skip-external-lockingkey_buffer_size = 256Mmax_allowed_packet = 1Mtable_open_cache = 1024sort_buffer_size = 4Mnet_buffer_length = 8Kread_buffer_size = 4Mread_rnd_buffer_size = 512Kmyisam_sort_buffer_size = 64Mthread_cache_size = 128#query_cache_size = 128Mtmp_table_size = 128Mexplicit_defaults_for_timestamp = truemax_connections = 500max_connect_errors = 100open_files_limit = 65535 binlog_format=mixed binlog_expire_logs_seconds =864000# 创建新表时将使用的默认存储引擎default_storage_engine = InnoDBinnodb_data_file_path = ibdata1:10M:autoextendinnodb_buffer_pool_size = 1024Minnodb_log_file_size = 256Minnodb_log_buffer_size = 8Minnodb_flush_log_at_trx_commit = 1innodb_lock_wait_timeout = 50transaction-isolation=READ-COMMITTED [mysqldump]quickmax_allowed_packet = 16M [myisamchk]key_buffer_size = 256Msort_buffer_size = 4Mread_buffer = 2Mwrite_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 

参数说明

linux xz 解压命令_解压命令linuxzip_解压命令linuxtar

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_password3.创建访问用户及主机ip如果你配置时使用了skip_name_resolve,要创建一下127.0.0.1用户及主机ipCREATE USER 'root'@'127.0.0.1' IDENTIFIED BY '你的新密码';创建远程访问用户任意ipCREATE USER 'root'@'%' IDENTIFIED BY '你的新密码';

查看mysql.log初始密码,复制下来

cat /data/mysql8_data/mysql/mysql.log

解压命令linuxzip_linux xz 解压命令_解压命令linuxtar

第六步

启动mysql,并修改root密码

启动

安全后台启动:(假如您的安装包含mysqld_safelinux多线程,则像这样启动MySQL服务器)

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

解压命令linuxtar_linux xz 解压命令_解压命令linuxzip

倘若您的安装包含systemd支持,请按以下方法启动服务器:

1. systemctl {start|stop|restart|status} mysqld对于systemctl或 service命令,如果MySQL服务名称不是mysqld,请使用适当的名称。例如,使用mysql而不是 mysqld在基于Debian的系统和SLES系统上使用。修改配置文件时:systemctl daemon-reloadsystemctl restart mysqld 2. 使用与System V系统兼容的service命令(具有相反的参数):service mysqld {start|stop|restart|status}

查看是否启动

ps -ef|grep mysql #查看mysql 进程 netstat -ano |grep "3306" #查看3306端口

修改密码

提示输入密码,把刚刚临时的密码粘过来。

解压命令linuxzip_linux xz 解压命令_解压命令linuxtar

解压命令linuxzip_linux xz 解压命令_解压命令linuxtar

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

linux xz 解压命令_解压命令linuxtar_解压命令linuxzip

之后执行更改密码与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;#关闭mysqlshutdown;修改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

解压命令linuxtar_linux xz 解压命令_解压命令linuxzip

到这儿就结束了,若果想退出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启动:service mysqld start停止:service mysqld stop重启:service mysqld restart重载配置:service mysqld reload

注意事项

解压命令linuxtar_linux xz 解压命令_解压命令linuxzip

假如以上步骤有权限问题,可执行以下命令,还有把开启自起打开

出现unitnotfound可以检测/etc/init.d/mysql是否存在,若否:

find / -name mysql.servercp /usr/local/mysql8/support-files/mysql.server /etc/init.d/mysqlcp ./support-files/mysql.server /etc/init.d/mysqldchown 777 /etc/my.cnfchmod +x /etc/init.d/mysqld

还有在安装前假如你的系统有Mariadb,就要卸载。

第一条命令拿来查看,假如有就用下边的命令卸载:

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

窗口函数:

mysql8部份删掉内容:

与账户管理相关的以下功能已删掉:

解压命令linuxtar_解压命令linuxzip_linux xz 解压命令

解压命令linuxzip_解压命令linuxtar_linux xz 解压命令

linux xz 解压命令_解压命令linuxtar_解压命令linuxzip

发放福利

种下一棵树

最好的时间是10年前

其次是现今

学习也一样

本文原创地址:https://www.linuxprobe.com/lxazmbzxxjcc.html编辑:刘遄,审核员:暂无