mysql 开发进阶篇系列 29 数据库二进制包安装

图片 33

一.步骤1: 解压glib包

-- 在 /usr/local 下创建一个mysql文件夹,用来存放
[root@hsr local]# mkdir mysql
[root@hsr local]# ls
bin  etc  games  include  lib  lib64  libexec  mysql  sbin  share  src

-- 在原有/usr/tool目录将gz压缩包解压
[root@hsr tool]# tar -zxvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
mysql-5.7.23-linux-glibc2.12-x86_64/bin/myisam_ftdump
mysql-5.7.23-linux-glibc2.12-x86_64/bin/myisamchk
mysql-5.7.23-linux-glibc2.12-x86_64/bin/myisamlog
mysql-5.7.23-linux-glibc2.12-x86_64/bin/myisampack
mysql-5.7.23-linux-glibc2.12-x86_64/bin/mysql
mysql-5.7.23-linux-glibc2.12-x86_64/bin/mysql_client_test_embedded
mysql-5.7.23-linux-glibc2.12-x86_64/bin/mysql_config_editor
.....

--将解压的文件复制到/usr/local/mysql目录下
[root@hsr tool]# sudo cp -r mysql-5.7.23-linux-glibc2.12-x86_64 /usr/local/mysql

--在mysql-->mysql-5.7.23-linux-glibc2.12-x86_64路径下 解压的文件共9个 目录如下: 
[root@hsr mysql]# ls mysql-5.7.23-linux-glibc2.12-x86_64 bin COPYING docs include lib man README share support-files

  注意:mysql-5.7.23-linux-glibc2.12-x86_64目录层次要去掉,变为/usr/local/mysql
下的9个目录,在文章后面会去掉这层。

  图片 1

LNMP编译安装之mysql安装–图文详解

1、前言

本次安装采用源码安装,主要资源包从官网下载,次要依赖则使用yum进行安装,本篇只涉及mysql的安装,msyql远程登录,不涉及mysql具体配置。该教程纯属安装,不涉及任何重要知识点,老少皆宜。

2、安装步骤

2.1、下载boost(只下载不安装)

wget

图片 2

2.2、解压bosot

tar zxvf  boost_1_59_0.tar.gz 

图片 3

2.3、移动boost(可以省略)

mv boost_1_59_0
 /usr/local/boost(目录位置需要记录,安装mysql需要使用)

图片 4

2.4、下载mysql

wget

图片 5

2.5、解压msyql

tar -zxvf mysql-5.7.18.tar.gz

图片 6

2.6、安装依赖

yum install gcc-c++ ncurses-devel perl-Data-Dumper

图片 7

3、安装前的准备工作

3.1、创建用户

useradd -M -s /sbin/nologin mysql

图片 8

3.2、创建目录

mkdir -pv /usr/local/mysql/mydata

mkdir -pv /usr/local/mysql/conf

图片 9

3.3、修改目录拥有者

chown -R mysql /usr/local/mysql

图片 10

3.4、删除my.cnf

rm -rf /etc/my.cnf(必须删除my.cnf,不删经常不成功)

图片 11

4、开始安装

4.1、生成makefile文件

cd mysql-5.7.19

cmake
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql  (安装目录)
-DMYSQL_DATADIR=/usr/local/mysql/mydata     (存储目录)
-DSYSCONFDIR=/usr/local/mysql/conf  (配置文件目录)
-DMYSQL_USER=mysql  (用户)
-DWITH_MYISAM_STORAGE_ENGINE=1
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_MEMORY_STORAGE_ENGINE=1
-DWITH_READLINE=1
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock  (UNIX
socket文件)
-DMYSQL_TCP_PORT=3306
-DENABLED_LOCAL_INFILE=1
-DENABLE_DOWNLOADS=1
-DWITH_PARTITION_STORAGE_ENGINE=1
-DEXTRA_CHARSETS=all
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_DEBUG=0
-DMYSQL_MAINTAINER_MODE=0
-DWITH_SSL:STRING=bundled
-DWITH_ZLIB:STRING=bundled
-DDOWNLOAD_BOOST=1
-DWITH_BOOST=/usr/local/boost (boost目录)
图片 12

make完成

图片 13

4.2、编译安装

 

make && make install

图片 14

安装完成

图片 15

4.3、初始化

/usr/local/mysql/bin/mysqld –initialize –user=mysql
–basedir=/usr/local/mysql
–datadir=/usr/local/mysql/mydata(随机密码初始化)
/usr/local/mysql/bin/mysqld –initialize-insecure –user=mysql
–basedir=/usr/local/mysql
–datadir=/usr/local/mysql/mydata(无密码初始化)

注:两个目录需要根据makefile的目录填写
本次采用无密码初始化

图片 16

4.4、启动mysql实例

图片 17

启动成功后,需要重开一个控制台进行登录操作

/usr/local/mysql/bin/mysql -u root -p

图片 18

5、进行远程登录帐号创建

5.1、创建登录帐号

GRANT ALL PRIVILEGES ON *.* TO ‘mysql_user(帐号)’@’%(host)’
IDENTIFIED BY ‘mysql_user(密码)’ WITH GRANT OPTION;

图片 19

5.2、开放330端口

firewall-cmd –zone=public –add-port=3306/tcp –permanent

图片 20

5.3、重启防火墙

systemctl restart firewalld.service

图片 21

5.4、远程登录测试

6、修改环境变量文件

vi /etc/profile +;

图片 22

底部添加一行

图片 23

刷新环境变量文件

source /etc/profile

图片 24

重新登录测试

图片 25

7、开启自启设置

7.1、复制驱动文件

cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld

图片 26

7.2、修改文件权限

chmod +x /etc/init.d/mysqld

图片 27

chkconfig –add mysqld

图片 28

chkconfig mysqld on

图片 29

7.3、重启测试

8、配置my.cnf文件

mysql
5.7版本以上默认不会产生my.cnf文件,需要手动创建,本次以开启二进制文件为例设置my.cnf文件

8.1、创建my.cnf

vi  /etc/my.cnf

图片 30

在文件中添加以下几行

[mysqld]
server-id = 1(这个要写,不写开不起来)
log-bin = bin.log
图片 31

8.2、登录mysql查询二进制日志开启状态

mysql> SHOW VARIABLES LIKE ‘log_%’;

 

图片 32

概述  

  对于二进制安装,优点是可以安装到任何路径下,灵活性好,一台服务器可以安装多个mysql。缺点是已经绎过编译,性能不如源码编译得好,不能灵活定制编译参数。如果用户即不想安装最简单却不够灵活的RPM包,又不想安装复杂费时的源码包,那么已编译好的二进制包将是最好的选择。

 八. 设置密码  

  8.1 打开my.cnf文件,添加skip-grant-tables,来重置密码,如下所示
    图片 33
  8.2 启动服务,再次登录,在输入密码处按回车键进入。

[root@hsr ~]# vim /etc/my.cnf
[root@hsr ~]# service mysql restart
Shutting down MySQL.. SUCCESS! 
Starting MySQL. SUCCESS! 
[root@hsr ~]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 2
Server version: 5.7.23

  8.3 进入mysql后,修改密码

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

mysql> update user set authentication_string=password('123456') where user='root';
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 1

  退出mysql>quit;  编辑 my.cnf 注释掉#skip-grant-tables

 8.4 重启mysql服务,输入修改后的密码(123456)进入

[root@hsr ~]# service mysql restart
Shutting down MySQL.. SUCCESS! 
Starting MySQL. SUCCESS! 
[root@hsr ~]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 2
Server version: 5.7.23

七 登录mysql

[root@hsr ~]# mysql -u root -p
bash: mysql: 未找到命令

  未找到命令,是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,就会找不到命令,需要映射一个链接到/usr/bin目录下,相当于建立一个链接文件。

[root@hsr ~]#  ln -s /usr/local/mysql/bin/mysql /usr/bin
[root@hsr ~]# mysql -u -root -p
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

--错误信息是不能连接到本地的socket ,系统默认找到了/tmp目录下,需要设置链接文件
[root@hsr tmp]# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

[root@hsr ~]# mysql -u -root -p
Enter password:

三 步骤3:  

  安装mysql,使用 –initialize,basedir
基础目录,datadir 为数据目录。

[root@hsr ~]# cd /usr/local/mysql/mysql-5.7.23-linux-glibc2.12-x86_64/bin
[root@hsr bin]# ./mysqld  --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
2018-08-23T06:56:21.157088Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-08-23T06:56:21.157246Z 0 [ERROR] Can't find error-message file '/usr/local/mysql/share/errmsg.sys'. Check error-message file location and 'lc-messages-dir' configuration directive.
2018-08-23T06:56:26.287087Z 0 [Warning] InnoDB: New log files created, LSN=45790
2018-08-23T06:56:27.059913Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2018-08-23T06:56:27.138616Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: a7e28575-a6a1-11e8-af13-000c29affb65.
2018-08-23T06:56:27.154064Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2018-08-23T06:56:27.155635Z 1 [Note] A temporary password is generated for root@localhost: ro0ssOGT?ocf
You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图