mysql基于二进制安装

安装MySQL数据库

(1) 创建mysql用户的账号

[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd -s /sbin/nologin -g mysql -M mysql
[root@localhost ~]# tail -1 /etc/passwd
mysql:x:501:501::/home/mysql:/sbin/nologin
[root@localhost ~]# id mysql
uid=501(mysql) gid=501(mysql) groups=501(mysql)

(2)获取MySQL二进制软件包

百度云盘:http://pan.baidu.com/s/1hrBCzsC
提取码:4yjf

屏幕快照 2017-07-14 上午11.09.14.png-184.9kB

(3) 采用二进制方式安装MySQL

[root@localhost ~]# tar xf mysql-5.5.32-linux2.6-x86_64.tar.gz -C /usr/local/
[root@localhost ~]# cd /usr/local/
[root@localhost local]# mv mysql-5.5.32-linux2.6-x86_64 mysql-5.5.32
[root@localhost local]# ln -s mysql-5.5.32 mysql
[root@localhost local]# ls
bin  games    lib    libexec  mysql-5.5.32  nginx-1.10.2  share
etc  include  lib64  mysql    nginx         sbin          src
[root@localhost local]# cd /usr/local/mysql
[root@localhost mysql]# ls
bin      data  include         lib  mysql-test  scripts  sql-bench
COPYING  docs  INSTALL-BINARY  man  README      share    support-files

命令如下:

[root@localhost ~]# cd /usr/local/mysql
[root@localhost mysql]# ls -l support-files/*.cnf
-rw-r--r--. 1 7161 wheel  4691 Jun 19  2013 support-files/my-huge.cnf
-rw-r--r--. 1 7161 wheel 19759 Jun 19  2013 support-files/my-innodb-heavy-4G.cnf
-rw-r--r--. 1 7161 wheel  4665 Jun 19  2013 support-files/my-large.cnf
-rw-r--r--. 1 7161 wheel  4676 Jun 19  2013 support-files/my-medium.cnf
-rw-r--r--. 1 7161 wheel  2840 Jun 19  2013 support-files/my-small.cnf
[root@localhost mysql]# /bin/cp support-files/my-small.cnf /etc/my.cnf

(5)初始化MySQL数据库文件

初始化命令如下:

[root@localhost ~]# mkdir -p /usr/local/mysql/data #建立MySQL数据文件目录
[root@localhost ~]# chown -R mysql.mysql /usr/local/mysql #授权mysql用户管理MySQL的安装目录
[root@localhost ~]# yum -y install libaio #光盘源安装依赖包,否则下一步的编译会报错
[root@localhost ~]# /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
------------
-----------
Please report any problems with the /usr/local/mysql/scripts/mysqlbug script!

以上的命令主要作用是生成如下数据库文件

[root@localhost ~]# tree /usr/local/mysql/data/
/usr/local/mysql/data/
├── mysql
│   ├── columns_priv.frm
│   ├── columns_priv.MYD
│   ├── help_keyword.frm

...以下省略若干...

这些MySQL数据文件是MySQL正确运行所必需的基本数据库文件,其功能是对MySQL权限,状态等进行管理。

2.3.3 初始化故障排错集锦

错误示例1:

usr/local/mysql/bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared ob

#错误原因是没有libaio函数库的支持。需要
yum -y install libaio

错误示例2:

WARNING:The host'mysql'could not be looked up with resolveip

#需要修改主机名解析,使其和uname -n一样,修改后的结果如下:
[root@localhost ~] # grep `uname -n` /etc/hosts

错误示例3:

ERROR:1004Can't create file '/tmp/#sql300e_1_o.frm'(errno:13)

#原因是/tmp目录的权限有问题。
解决办法为处理/tmp目录,如下:

[root@localhost ~]# ls -ld /tmp
drwxrwxrwt. 3 root root 4096 Jul 14 07:56 /tmp
[root@localhost ~]# chmod -R 1777 /tmp/

此故障必须解除,否则,后面会出现登陆不了数据库等问题。

2.4 配置并启动MySQL数据库

(1)设置MySQL启动脚本,命令如下:

[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
#拷贝MySQL启动脚本到MySQL的命令路径
[root@localhost mysql]# chmod +x /etc/init.d/mysqld 
#使脚本可执行

(2)MySQL二进制默认安装路径是/usr/local/mysql,启动脚本里是/usr/local/mysql。如果安装路径不同,那么脚本里路径等都需要替换

(3)启动MySQL数据库,命令如下:

[root@localhost mysql]# /etc/init.d/mysqld start
Starting MySQL.. SUCCESS! 

(4)检查MySQL数据库是否启动,命令如下:

[root@localhost mysql]# netstat -antup | grep mysql
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      1702/mysqld  

如果发现3306端口没起来,请tail -100 /usr/local/mysql/data/主机名.err查看日志信息,看是否有报错信息,然后根据相关错误提示进行调试。经常查看服务运行日志是个很好的习惯,也是高手的习惯。

(5)查看MySQL数据库启动结果日志,命令如下:

[root@localhost mysql]# tail -10 /usr/local/mysql/data/localhost.err 
InnoDB: Creating foreign key constraint system tables
InnoDB: Foreign key constraint system tables created
170714  8:33:47  InnoDB: Waiting for the background threads to start
170714  8:33:48 InnoDB: 5.5.32 started; log sequence number 0
170714  8:33:48 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306
170714  8:33:48 [Note]   - '0.0.0.0' resolves to '0.0.0.0';
170714  8:33:48 [Note] Server socket created on IP: '0.0.0.0'.
170714  8:33:49 [Note] Event Scheduler: Loaded 0 events
170714  8:33:49 [Note] /usr/local/mysql/bin/mysqld: ready for connections.
Version: '5.5.32'  socket: '/tmp/mysql.sock'  port: 3306  MySQL Community Server (GPL)

(6)设置MySQL开机自启动,命令如下:

[root@localhost mysql]# chkconfig --add mysqld
[root@localhost mysql]# chkconfig mysqld on

提示:也可以将启动命令/etc/init.d/mysqld start 放到/etc/rc.local里面

(7)配置mysql命令的全局使用路径,命令如下:

[root@localhost mysql]# ln -s /usr/local/mysql/bin/* /usr/local/bin/
[root@localhost mysql]# which mysqladmin
/usr/local/bin/mysqladmin

(8)登陆MySQL测试,命令如下:

[root@localhost mysql]# mysql   #直接输入命令即可登陆
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 2
Server version: 5.5.32 MySQL Community Server (GPL)
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
mysql> 
Bye

提示:
MySQL安装完成以后,默认情况下,root账户是无密码的,这个必须要设置。

2.5 MySQL安全配置

(1)为MySQL的root用户设置密码,命令如下:

[root@localhost mysql]# mysqladmin -u root password '123123' #设置密码
[root@localhost mysql]# mysql   #无法直接登陆了
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[root@localhost mysql]# mysql -uroot -p  #新的登陆方式
Enter password:                 #输入设置的密码
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 5
Server version: 5.5.32 MySQL Community Server (GPL)

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

mysql> 

(2)清理无用的MySQL用户及库,命令如下:

mysql> select user,host from mysql.user;
+------+-----------+
| user | host      |
+------+-----------+
| root | 127.0.0.1 |
| root | ::1       |
|      | localhost |
| root | localhost |
+------+-----------+
4 rows in set (0.00 sec)

mysql> drop user "root"@"::1";
Query OK, 0 rows affected (0.00 sec)

mysql> drop user ""@"localhost";
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host from mysql.user;
+------+-----------+
| user | host      |
+------+-----------+
| root | 127.0.0.1 |
| root | localhost |
+------+-----------+
2 rows in set (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

修改字符集为utf-8

[mysqld]

character_set_server=utf8

重启mysql即可

systemctl restart mysqld

原文地址:https://www.cnblogs.com/CMX_Shmily/p/11670308.html