提供Discuz ,ECShop ,PHPCMS ,帝国CMS ,CSS教程 ,PHP教程 ,DedeCMS ,WordPress ,HTML教程等cms问题查询.
当前位置: 运维 > Linux > Linux装置mysql 8.0的细致要领引见(代码示例)【Linux】,mysql,linux,socket,mysqld,mysql8

本篇文章给人人带来的内容是关于Linux装置mysql 8.0的细致要领引见(代码示例),有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。

经由一番勤奋下载mysql文件,我们能够最先Mysql8.0的装置了。

解压文件

// 解压文件生成两个xz花样的压缩文件
$ tar -xvf mysql-8.0.13-linux-glibc2.12-x86_64.tar
mysql-router-8.0.13-linux-glibc2.12-x86_64.tar.xz
mysql-test-8.0.13-linux-glibc2.12-x86_64.tar.xz
// 我们须要先删掉/移除原有文件,才能够继承解压,因为解压出来的.tar文件和.tar.xz文件重名
mv mysql-8.0.13-linux-glibc2.12-x86_64.tar ../
xz -d mysql-router-8.0.13-linux-glibc2.12-x86_64.tar.xz
tar -xvf mysql-8.0.13-linux-glibc2.12-x86_64.tar
// 为了轻易查找,改个名字
mv mysql-8.0.13-linux-glibc2.12-x86_64.tar mysql8

环境设置

我们须要特地的mysql历程启动用户和权限治理:

// 建立mysql体系用户和用户组
useradd -r mysql
// 给予装置目次mysql权限
chown mysql:mysql -R mysql8

设置本身的mysql设置文件,因为我有多个Mysql库,我手动指定许多参数:

[client]
socket=/home/work/lnmp/mysql8/tmp/mysql.sock
default-character-set=utf8

[mysql]
basedir=/home/work/lnmp/mysql8/
datadir=/home/work/lnmp/mysql8/data/
socket=/home/work/lnmp/mysql8/tmp/mysql.sock
port=3306
user=mysql
# 指定日记时候为体系时候
log_timestamps=SYSTEM
log-error=/home/work/lnmp/mysql8/log/mysql.err
# 指定字符集为utf8,因为mysql8.0中的默许字符集为utfmb4,会和其他顺序引发兼容性问题
default-character-set=utf8

[mysqld]
basedir=/home/work/lnmp/mysql8/
datadir=/home/work/lnmp/mysql8/data/
socket=/home/work/lnmp/mysql8/tmp/mysql.sock
port=3306
user=mysql
log_timestamps=SYSTEM
collation-server = utf8_unicode_ci
character-set-server = utf8
# 指定默许认证的加密体式格局,mysql8.0中默许体式格局为caching_sha2_password,引发老版本兼容性问题
default_authentication_plugin= mysql_native_password

[mysqld_safe]
log-error=/home/work/lnmp/mysql8/log/mysqld_safe.err
pid-file=/home/work/lnmp/mysql8/tmp/mysqld.pid
socket=/home/work/lnmp/mysql8/tmp/mysql.sock

[mysql.server]
basedir=/home/work/lnmp/mysql8
socket=/home/work/lnmp/mysql8/tmp/mysql.sock

[mysqladmin]                                                                                                                                  
socket=/home/work/lnmp/mysql8/tmp/mysql.sock

这个内里我指定了毛病日记的途径,在接下来的操纵中,假如涌现毛病,除了检察终端显现的毛病,还要记得去毛病日记里检察细致的信息。

因为我指定了一些文件,所以须要提早建立:

mkdir log
touch log/mysql.err
touch log/mysqld_safe.err
mkdir tmp
chown mysql:mysql -R ../*

数据库初始化

假如我们不初始化,直接运用bin/mysqld_safe启动会报错,因为我们须要初始化mysql环境,此时参考文章:

$ bin/mysqld --initialize --user=mysql --basedir=/home/work/lnmp/mysql8/ --datadir=/home/work/lnmp/mysql8/data/
2018-12-13T06:15:03.159123Z 0 [System] [MY-013169] [Server] /home/work/lnmp/mysql8/bin/mysqld (mysqld 8.0.13) initializing of server in progress as process 1190
2018-12-13T06:15:05.255817Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: !/7oy-u%(XfZ
2018-12-13T06:15:06.135143Z 0 [System] [MY-013170] [Server] /home/work/lnmp/mysql8/bin/mysqld (mysqld 8.0.13) initializing of server has completed

提醒中提醒我们已建立了root的用户和一个暂时暗码,同时初始化胜利。

启动数据库

这时候依据官方文档我们运用mysqld_safe 敕令来启动:

$ bin/mysqld_safe
2018-12-13T06:16:58.604154Z mysqld_safe Logging to '/home/work/lnmp/mysql8/log/mysql.err'.
2018-12-13T06:16:58.629249Z mysqld_safe Starting mysqld daemon with databases from /home/work/lnmp/mysql8/data

翻开数据库

数据库历程已启动,我们能够在新终端一般运用mysql数据库了:

$ ps aux | grep mysql 
root      2141  0.0  0.0 815844  5328 pts/0    S+   14:16   0:00 /bin/sh bin/mysqld_safe
mysql     2319  1.0  0.5 1997492 374448 pts/0  Sl+  14:16   0:00 /home/work/lnmp/mysql8/bin/mysqld --basedir=/home/work/lnmp/mysql8/ --datadir=/home/work/lnmp/mysql8/data --plugin-dir=/home/work/lnmp/mysql8//lib/plugin --user=mysql --log-error=/home/work/lnmp/mysql8/log/mysql.err --pid-file=/home/work/lnmp/mysql8/tmp/mysqld.pid --socket=/home/work/lnmp/mysql8/tmp/mysql.sock --port=3306
work     25258  0.0  0.0 105356   824 pts/1    S+   14:18   0:00 grep mysql

然则直接运用mysql敕令报错:

$ bin/mysql -uroot
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

依据mysql.sock的作用的申明,我们指定mysql.sock途径即可:

bin/mysql -S /home/work/lnmp/mysql8/tmp/mysql.sock -h localhost -uroot -p
Enter password:

修正初始暗码

我们翻开数据库后运用任何敕令会提醒我们修正初始的暂时暗码:

mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

修正暗码:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.05 sec)

从新衔接,新暗码见效。

链接全局敕令

此时,我们挪用mysql只能用途径/home/work/lnmp/mysql8/bin/mysql或相对途径,须要链接为全局敕令:

$ ln -s /home/work/lnmp/mysql8/bin/mysql /usr/bin/
$ ln -s /home/work/lnmp/mysql8/bin/mysql_safe /usr/bin/

指定socket文件

在8.0这个版本,我尝试了许多要领试图在my.cnf中修正mysql敕令查询的默许socket途径,依旧不胜利,所以只好在默许途径内里链接socket文件了:

ln -s /home/work/lnmp/mysql8/tmp/mysql.sock /tmp/

然后我们再挪用mysql敕令就不会报错了。

重启数据库

在过程当中我们调试参数能够须要重启数据库:

// 杀死历程,相当于住手
cat tmp/mysqld.pid | xargs kill
// 一般启动mysql
bin/mysqld_safe  --defaults-file=/home/work/lnmp/mysql8/my.cnf

新增用户&给予权限

在mysql8里,我建立用户并赋值,效果报错:

mysql > grant all privileges on *.* to root@localhost indentified by '123456';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'indentified by '123456'' at line 1

依据网上材料,是因为Mysql8将建立账户和给予权限的操纵分开了:

// 建立账户
create user '用户名'@'接见主机' identified by '暗码';
// 给予权限(修正权限时在后面加with grant option)
grant 权限列表 on 数据库 to '用户名'@'接见主机' ;
// 革新权限
flush privileges;

总结

经由解压文件,建立mysql用户和用户组,设置my.cnf设置文件,修正权限,数据库初始化、启动,翻开数据库,修正初始暗码,链接全局敕令和指定socket文件途径,一切的装置事情都已完成了。

以上就是Linux装置mysql 8.0的细致要领引见(代码示例)的细致内容,更多请关注ki4网别的相干文章!

「梦想一旦被付诸行动,就会变得神圣,如果觉得我的文章对您有用,请帮助本站成长」

分享到:
赞(0) 打赏

支付宝扫一扫打赏

微信扫一扫打赏

上一篇:

下一篇:

相关推荐

0 条评论关于"Linux装置mysql 8.0的细致要领引见(代码示例)【Linux】,mysql,linux,socket,mysqld,mysql8"

最新评论

    暂无留言哦~~

博客简介

看古风美女插画Cos小姐姐,素材合集图集打包下载:炫龙网,好看二次元插画应有尽有,唯美小姐姐等你来。

友情链接

他们同样是一群网虫,却不是每天泡在网上游走在淘宝和网游之间、刷着本来就快要透支的信用卡。他们或许没有踏出国门一步,但同学却不局限在一国一校,而是遍及全球!申请交换友链

服务热线:
 

 QQ在线交流

 旺旺在线