当前位置: 首页 > Linux

linux安装mysql8.0

时间:2023-04-06 12:00:15 Linux

辛苦下载mysql文件后,我们就可以开始安装Mysql8.0了。Unzipthefile//解压文件生成两个xz格式的压缩文件$tar-xvfmysql-8.0.13-linux-glibc2.12-x86_64.tarmysql-router-8.0.13-linux-glibc2.12-x86_64。柏油。xzmysql-test-8.0.13-linux-glibc2.12-x86_64.tar.xz//在继续解压前我们需要删除/移除原文件,因为解压后的.tar文件和.tar.xz文件被重命名了mvmysql-8.0.13-linux-glibc2.12-x86_64.tar../xz-dmysql-router-8.0.13-linux-glibc2.12-x86_64.tar.xztar-xvfmysql-8.0.13-linux-glibc2.12-x86_64.tar//为了方便查找,改名为mvmysql-8.0.13-linux-glibc2.12-x86_64.tarmysql8环境配置我们需要一个专门的mysql进程来开始用户和权限管理//创建mysql系统用户和用户组useradd-rmysql//给安装目录mysql权限chownmysql:mysql-Rmysql8配置我自己的mysql配置文件,因为我有多个Mysql库,我手动指定许多参数:[client]socket=/home/work/lnmp/mysql8/tmp/mysql.sockdefault-character-set=utf8[mysql]basedir=/home/work/lnmp/mysql8/datadir=/home/work/lnmp/mysql8/data/socket=/home/work/lnmp/mysql8/tmp/mysql.sockport=3306user=mysql#指定日志时间为系统时间log??_timestamps=SYSTEMlog-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.sockport=3306user=mysqllog_timestamps=SYSTEMcollat??ion-server=utf8_unicode_cicharacter-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.errpid-file=/home/work/lnmp/mysql8/tmp/mysqld.pidsocket=/home/work/lnmp/mysql8/tmp/mysql.sock[mysql.server]basedir=/home/work/lnmp/mysql8socket=/home/work/lnmp/mysql8/tmp/mysql.sock[mysqladmin]socket=/home/work/lnmp/mysql8/tmp/mysql.sock我指定了错误日志路径,在接下来的操作中,如果出现错误,除了查看终端显示的错误外,记得查看错误日志中的详细信息因为我指定了一些文件,需要提前创建:mkdirlogtouchlog/mysql.errtouchlog/mysqld_safe.errmkdirtmpchownmysql:mysql-R../*数据库初始化如果我们不初始化,直接使用bin/mysqld_safe来start会报错,因为我们需要初始化mysql环境,此时参考文章:$bin/mysqld--initialize--user=mysql--basedir=/home/work/lnmp/mysql8/--datadir=/home/work/lnmp/mysql8/data/2018-12-13T06:15:03.159123Z0[系统][MY-013169][服务器]/home/work/lnmp/mysql8/bin/mysqld(mysqld8.0.13)正在初始化服务器作为进程11902018-12-13T06:15:05.255817Z5[Note][MY-010454][Server]为root@localhost生成临时密码:!/7oy-u%(XfZ2018-12-13T06:15:06.135143Z0[System][MY-013170][Server]/home/work/lnmp/mysql8/bin/mysqld(mysqld8.0.13)initializingofserverhascomplete提示符提示我们有创建了root用户和临时密码,同时初始化成功。启动数据库这时候根据官方文档,我们使用mysqld_safe命令启动:$bin/mysqld_safe2018-12-13T06:16:58.604154Zmysqld_safeLoggingto'/home/work/lnmp/mysql8/log/mysql.err'.2018-12-13T06:16:58.629249Zmysqld_safestartingmysqlddaemonwithdatabasesfrom/home/work/lnmp/mysql8/data打开数据库数据库进程已经启动,我们可以正常使用mysql数据库终端:$psaux|grepmysqlroot21410.00.08158445328pts/0S+14:160:00/bin/shbin/mysqld_safemysql23191.00.51997492374448pts/0Sl+14:160: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=3306work252580.00.0105356824pts/1S+14:180:00grepmysql但是直接使用mysql命令报错:$bin/mysql-urootERROR2002(HY000):无法连接到本地MySQL服务器socket'/tmp/mysql.sock'(2)根据mysql.sock的功能描述,我们可以指定mysql.sock的路径:bin/mysql-S/home/work/lnmp/mysql8/tmp/mysql.sock-hlocalhost-uroot-pEnterpassword:修改初始密码。我们打开数据库后,会提示我们使用任意命令修改初始临时密码:mysql>showdatabases;ERROR1820(HY000):在执行此语句之前,您必须使用ALTERUSER语句重置密码。修改密码:mysql>ALTERUSER'root'@'localhost'IDENTIFIEDBY'123456';QueryOK,0rowsaffected(0.05sec)Reconnect,newpasswordtoeffectLinktheglobalcommand此时,我们只能调用mysqlwith路径/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/指定套接字文件的版本为8.0。我尝试了很多方法在my.cnf中修改mysql命令查询的默认socket路径,还是没有成功,只好使用默认路径链接socket文件:ln-s/home/work/lnmp/mysql8/tmp/mysql.sock/tmp/那么我们再调用mysql命令就不会报错了。在重启数据库的过程中,我们调试参数的时候可能需要重启数据库://kill进程,相当于停止cattmp/mysqld.pid|xargskill//正常启动mysqlbin/mysqld_safe--defaults-file=/home/work/lnmp/mysql8/my.cnf添加新用户&授予权限在mysql8中,我创建了一个用户并赋值,结果是一个错误:mysql>将*.*上的所有权限授予由“123456”标识的root@localhost;ERROR1064(42000):你的SQL语法有错误;查看你的MySQL服务器版本对应的手册第1行'identifiedby'123456''附近使用的正确语法根据网上的资料,这是因为Mysql8将创建账户和授予权限的操作分开了://createaccountcreateuser'username'@'accesshost'identifiedby'password';//grantpermission(修改权限时加上grant选项)grantpermissionlistondatabaseto'username'@'Accesshost';//刷新权限flush特权;安装后连接其他数据库时的注意事项:$mysql-h10.92.143.15-uroot-pEnterpassword:ERROR1043(08S01):Badhandshakethiserror问题是远程数据库版本太低(version:5.1.30).在mysql8.0文档中,说明支持的数据库版本需要>=5.5,所以他们建议将其余数据库升级到5.6版本。总结解压文件,创建mysql用户和用户组,配置my.cnf配置文件,修改权限,初始化启动数据库,打开数据库,修改初始密码,链接全局命令,指定socket文件路径,所有安装工作已经完成了。参考4.3.2mysqld_safe——MySQL服务器启动脚本:https://dev.mysql.com/doc/ref...安装mysql后缺少mysql_install_db命令:https://bbs.archlinux.org/vie...mysql.sock文件分析:https://segmentfault.com/a/11...升级wget/curlforLinux下载https文件的过程:https://segmentfault.com/a/11...:https://blog.csdn.net/li_0891...