安装MySQL数据库

(1) 创建mysql用户的账号

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

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

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

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

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

命令如下:

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

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

初始化命令如下:

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

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

  1. [root@localhost ~]# tree /usr/local/mysql/data/
  2. /usr/local/mysql/data/
  3. ├── mysql
  4.    ├── columns_priv.frm
  5.    ├── columns_priv.MYD
  6.    ├── help_keyword.frm
  7. ...以下省略若干...

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

2.3.3 初始化故障排错集锦

错误示例1:

  1. usr/local/mysql/bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared ob
  2. #错误原因是没有libaio函数库的支持。需要
  3. yum -y install libaio

错误示例2:

  1. WARNING:The host'mysql'could not be looked up with resolveip
  2. #需要修改主机名解析,使其和uname -n一样,修改后的结果如下:
  3. [root@localhost ~] # grep `uname -n` /etc/hosts

错误示例3:

  1. ERROR:1004Can't create file '/tmp/#sql300e_1_o.frm'(errno:13)
  2. #原因是/tmp目录的权限有问题。
  3. 解决办法为处理/tmp目录,如下:
  4. [root@localhost ~]# ls -ld /tmp
  5. drwxrwxrwt. 3 root root 4096 Jul 14 07:56 /tmp
  6. [root@localhost ~]# chmod -R 1777 /tmp/

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

2.4 配置并启动MySQL数据库

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

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

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

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

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

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

  1. [root@localhost mysql]# netstat -antup | grep mysql
  2. 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数据库启动结果日志,命令如下:

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

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

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

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

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

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

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

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

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

2.5 MySQL安全配置

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

  1. [root@localhost mysql]# mysqladmin -u root password '123123' #设置密码
  2. [root@localhost mysql]# mysql #无法直接登陆了
  3. ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
  4. [root@localhost mysql]# mysql -uroot -p #新的登陆方式
  5. Enter password: #输入设置的密码
  6. Welcome to the MySQL monitor. Commands end with ; or \g.
  7. Your MySQL connection id is 5
  8. Server version: 5.5.32 MySQL Community Server (GPL)
  9. Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
  10. Oracle is a registered trademark of Oracle Corporation and/or its
  11. affiliates. Other names may be trademarks of their respective
  12. owners.
  13. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  14. mysql>

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

  1. mysql> select user,host from mysql.user;
  2. +------+-----------+
  3. | user | host |
  4. +------+-----------+
  5. | root | 127.0.0.1 |
  6. | root | ::1 |
  7. | | localhost |
  8. | root | localhost |
  9. +------+-----------+
  10. 4 rows in set (0.00 sec)
  11. mysql> drop user "root"@"::1";
  12. Query OK, 0 rows affected (0.00 sec)
  13. mysql> drop user ""@"localhost";
  14. Query OK, 0 rows affected (0.00 sec)
  15. mysql> select user,host from mysql.user;
  16. +------+-----------+
  17. | user | host |
  18. +------+-----------+
  19. | root | 127.0.0.1 |
  20. | root | localhost |
  21. +------+-----------+
  22. 2 rows in set (0.00 sec)
  23. mysql> flush privileges;
  24. Query OK, 0 rows affected (0.00 sec)

修改字符集为utf-8

  1. [mysqld]
  2.  
  3. character_set_server=utf8

重启mysql即可

systemctl restart mysqld

mysql中utf8字符集的设置及character_set_database属性修改的更多相关文章

  1. MySQL中 utf8与utf8mb4的区别

    MySQL中 utf8与utf8mb4的区别 一.简介 ​ MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode.好在 ...

  2. MySQL中UTF8编码的数据在cmd下乱码

    MySQL中UTF8编码的数据在cmd下乱,在数据库ide中看到的却是中文. 其实,原因是cmd用gbk的格式来显示数据,那么我们只需要将utf-8存储的数据用gbk的格式输出到cmd即可. 解决方法 ...

  3. mysql中utf8和utf8mb4区别

    一.什么是utf8mb4 MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode.好在utf8mb4是utf8的超集,除 ...

  4. 浅谈mysql中utf8和utf8mb4区别

    转自:http://ourmysql.com/archives/1402  实践过程中发现有时mysql的字符集会引起故障,所以需要了解下这个知识点. 一.简介 MySQL在5.5.3之后增加了这个u ...

  5. 清官谈mysql中utf8和utf8mb4区别

    清官谈mysql中utf8和utf8mb4区别 发布时间:2015 年 10 月 4 日 发布者: OurMySQL 来源:JavaRanger - 专注JAVA高性能程序开发.JVM.Mysql优化 ...

  6. mysql中通过my.cnf设置默认字符集utf-8

    选项配置 配置文件路径:/full/path/mysql/bin/my.cnf (默认为/etc/my.cnf ) [client] default-character-set=utf8 [mysql ...

  7. mysql中更改字符集为utf8&&mysql中文输入不了问题解决

    写给TT:对不起啦!! 嗯,输入不了中文,大多数问题是mysql的字符集设置的问题,当然,别的问题也有可能, 这里我们用两种方法设置mysql的字符集,图形化工具和命令行的方式(一种操作完即可) 一, ...

  8. MySQL中字段字符集不同导致索引不能命中

    今天写了一个sql,其中涉及的表中的数据量都差不多为50w左右,查询发现用了8s.这个只是测试服上数据,放到正式服上,肯定一运行就挂了. SELECT Orders. NO, GuidNo, Orde ...

  9. PHP与MYSQL中UTF8 中文排序例子

    1. 需要在php数组中用中文排序,但是一般使用utf8格式的文件,直接用asort排序不行.用gbk和gb2312可以.这跟几种格式的编码有关系.gbk和gb2312本身的编码就是用拼音排序的. 代 ...

随机推荐

  1. JAVA 注解教程(一)简单介绍

    相关网址 https://blog.csdn.net/briblue/article/details/73824058 --- 已经整理成笔记 https://blog.csdn.net/bao199 ...

  2. codeforces 1283D. Christmas Trees(bfs)

    链接: https://codeforces.com/contest/1283/problem/D 题意:给定n个不同的整数点,让你找m个不同的整数点,使得这m个点到到这n个点最小距离之和最小. 思路 ...

  3. SuperSocket与SuperSocket.ClientEngine实现Protobuf协议

    参考资料说明 SuperSocket文档 http://docs.supersocket.net/ Protobuf语言参考 https://developers.google.com/protoco ...

  4. hyper-v 80070057

    微软官网搜索MediaCreation tool进行升级.

  5. Linux安装MATLAB2016a

    一.准备工具 matlab2016a的镜像文件和破解文件(链接: https://pan.baidu.com/s/1cxtlOM 密码: cj2u) Linux系统,我用的是deepin15.4,和一 ...

  6. IntelliJ IDEA 2017.3尚硅谷-----创建动态的 Java Web

  7. char nchar varchar nvarchar varchar2区别

    char(n):长度不可变,长度为n个字节,非Unicode字符 nchar(n):长度不可变,长度为2n个字节,Unicode字符 varchar(n):长度可变,长度为n个字节,非Unicode字 ...

  8. 801. 二进制中1的个数(lowbit(n)函数)

    给定一个长度为n的数列,请你求出数列中每个数的二进制表示中1的个数. 输入格式 第一行包含整数n. 第二行包含n个整数,表示整个数列. 输出格式 共一行,包含n个整数,其中的第 i 个数表示数列中的第 ...

  9. 抽象语法树 Abstract syntax tree

    什么是抽象语法树? 在计算机科学中,抽象语法和抽象语法树其实是源代码的抽象语法结构的树状表现形式 在线编辑器 我们常用的浏览器就是通过将js代码转化为抽象语法树来进行下一步的分析等其他操作.所以将js ...

  10. 快速排序 QuickSort (C++迭代,递归)

    /* * QuickSort.h * 快速排序(将每一个元素转换为轴点元素) * Created on: 2020年2月12日 * Author: LuYonglei */ #ifndef SRC_Q ...