1.安装准备MySQL官网https://www.mysql.com/MySQL下载页面https://dev.mysql.com/downloa...2.下载MySQL在MySQL下载页面,选择MySQL的版本。选择版本MySQLCommunityServer5.7.23选择SourceCode选择GenericLinux(ArchitectureIndependent)选择mysql-boost-5.7.23.tar.gzwithboostversion复制链接地址下载MySQLyum-yinstallwgetwgethttps://dev.mysql。com/get/Downloads/MySQL-5.7/mysql-boost-5.7.23.tar.gz三、环境依赖源码方式安装MySQL需要的环境依赖:cmakemakegccgcc-c++bisonncursesncurses-devel(devel为开发version)yum-yinstallcmakemakegccgcc-c++bisonncursesncurses-devel4.安装MySQL1。解压mysql包tar-zxvfmysql-boost-5.7.23.tar.gzcdmysql-5.7.23/2。创建编译目录mkdirconfigurecdconfigure3。生成编译环境cmake..-DWITH_BOOST=../boost/boost_1_59_0/-DWITH_EMBEDDED_SERVER=OFF结果:--Configuringdone--Generatingdone--Buildfileshavebeenwrittento:/root/mysql-5.7.23/出现的问题configure可能会遇到:问题1MySQL目前需要boost_1_59_0...解决方法:因为下载的是带boost的版本,只要指定正确的-DWITH_BOOST参数即可,如下-DWITH_BOOST=../boost/boost_1_59_0/如果不是带boost的版本boost,需要自己下载,移动到解压后的mysql-5.7.23目录下。生成编译文件时,指定正确的-DWITH_BOOST参数给wgethttps://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz/downloadtar-zxvfboost_1_59_0.tar.gzmvboost_1_59_0mysql-5.7.23或者指定cmake参数,系统会自行下载-DDOWNLOAD_BOOST=1-DWITH_BOOST问题2make[2]:***[libmysqld/examples/mysql_client_test_embedded]error1make[1]:***[libmysqld/examples/CMakeFiles/mysql_client_test_embedded.dir/all]Error2解决办法:加入如下参数-DWITH_EMBEDDED_SERVER=OFF4.整个编译安装过程可能需要一些时间,稍等耐心地制作&&制作安装5。创建mysql用户组和用户组addmysqluseradd-gmysqlmysql6。设置权限MySQL的安装目录为/usr/local/mysqlchown-Rmysql:mysql/usr/local/mysql7.初始数据库cd/usr/local/mysql/bin./mysqld--initialize--user=mysql2018-07-29T19:09:18.304497Z0[Warning]具有隐式DEFAULT值的TIMESTAMP已弃用。请使用--explicit_defaults_for_timestamp服务器选项(有关详细信息,请参阅文档)。2018-07-29T19:09:18.536280Z0[警告]InnoDB:已创建新日志文件,LSN=457902018-07-29T19:09:18.586523Z0[Warning]InnoDB:Creatingforeignkeyconstraintsystemtables.2018-07-29T19:09:18.649604Z0[Warning]NoexistingUUIDhasbeenfound,所以我们假设这是第一次启动这个服务器。生成新的UUID:e49ee151-9362-11e8-ab75-08002739fe2b.2018-07-29T19:09:18.653045Z0[警告]Gtid表尚未准备好使用。无法打开表'mysql.gtid_executed'。2018-07-29T19:09:18.653886Z1[注意]临时passwordisgeneratedforroot@localhost:A,uNFfDrd1yd结果:生成了一个临时密码,需要记录,并且有警告TIMESTAMPwithimplicitDEFAULTvalueisdeprecated。解决办法:vim/etc/my.cnf编辑配置文件,然后在其中写入explicit_defaults_for_timestamp=true。8.添加mysql到系统服务cd/usr/local/mysql/support-filescpmysql.server/etc/init.d/mysqlchkconfig--addmysql#添加到系统服务chkconfigmysqlon#开机9.尝试打开mysql服务服务mysql启动遇到问题,如下:StartingMySQL.2018-07-30T01:14:39.000931Zmysqld_safeerror:log-errorsetto'/var/log/mariadb/mariadb.log',howeverfile不存在。为用户“mysql”创建可写。错误!服务器在没有更新PID文件(/var/lib/mysql/localhost.localdomain.pid)的情况下退出。解决方法:创建这个文件,mkdir/var/log/mariadbtouch/var/log/mariadb/mariadb.logchown-Rmysql:mysql/var/log/mariadb/mariadb.log再次启动mysql服务[root@localhostsupport-files]#servicemysqlstart启动MySQL。成功!服务启动成功!10、登录mysql[root@localhostsupport-files]#mysql-uroot-p-bash:mysql:commandnotfound解决commandnotfound创建软链接ln-s/usr/local/mysql/bin/mysql/usr/local/bin结果:[root@localhost~]#ll-a/usr/local/bin总使用量0drwxr-xr-x。2rootroot19July3016:36.drwxr-xr-x。15rootroot1697月30日02:58..lrwxrwxrwx。1根根30年7月26日16:36mysql->/usr/local/mysql/bin/mysql再次登录:遇到问题[root@localhost~]#mysql-uroot-p输入密码:ERROR2002(HY000):无法连接本地MySQLserverthroughsocket'/tmp/mysql.sock'(2)解决方法找到mysql.sock文件,发现它存在于/var/lib/mysql/目录下[root@localhost~]#find/-name'mysql.sock'/var/lib/mysql/mysql.sock然后查看配置文件my.cnf[mysqld]2datadir=/var/lib/mysql3socket=/var/lib/mysql/mysql.sock4explicit_defaults_for_timestamp=truefrom配置文件如果socket值为/var/lib/mysql/mysql.sock,可以创建一个软链接到/tmp/mysql.sockln-s/var/lib/mysql/mysql.sock/tmp/mysql.sock再次登录mysql初始化数据库时,如果生成的临时密码没有记录,就只好“暴力破解”了。首先,关闭mysql服务servicemysqlstop然后,修改/etc/my.cnf,添加skip-grant-tables,如下[mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockskip-grant-tablesThen,loginwithoutpasswordandmodifiedtheloginpasswordmysql#Settheaccountpasswordandexitupdateusersetauthentication_string=password('PASSWORD')whereuser='root';flushprivileges;最后,更改/etc/my.cnfskip-grant-tables已删除或注释掉。重新启动服务,使用密码登录[root@localhostsupport-files]#mysql-uroot-pEnterpassword:WelcometotheMySQLmonitor.命令以;结尾或\g。您的MySQL连接ID是4Server版本:5.7.23版权所有(c)2000、2018、Oracle和/或其附属公司。保留所有权利。Oracle是OracleCorporation和/或其附属公司的注册商标。其他名称可能是其各自所有者的商标。键入“帮助;”或'\h'寻求帮助。输入'\c'清除当前输入语句。mysql>提示重新设置自动生成的密码:mysql>showdatabases;ERROR1820(HY000):YoumustresetyourpasswordusingALTERUSERstatementbeforeexecutingthisstatement.修改root用户密码mysql>alteruser'root'@'localhost'identifiedby'123123';QueryOK,0rowsaffected(0.00sec)ormysql>setpasswordforroot@localhost=password('123123');QueryOK,0受影响的行,1个警告(0.00秒)重新登录MySQLmysql>exitBye[root@localhost~]#mysql-uroot-pEnterpassword:WelcometotheMySQLmonitor.命令以;结束或\g。您的MySQL连接ID是3Server版本:5.7.23源分发版权所有(c)2000、2018、Oracle和/或其附属公司。保留所有权利。Oracle是OracleCorporation和/或其附属公司的注册商标。其他名称可能是其各自所有者的商标。键入“帮助;”或'\h'寻求帮助。键入'\c'清除当前输入语句。mysql>operationdatabaseshowdatabases;+--------------------+|数据库|+--------------------+|信息模式||数据库||性能模式||sys|+----------------+4rowsinset(0.00sec)mysql>5.总结一下,好记性不如烂笔头,你要养成记录的习惯
