MySQL 安装

本文说明:安装教程摘自菜鸟教程网,并结合原文和网上一些大牛提供的问题解决方法整理。

MySQL 安装

所有平台的Mysql下载地址为: https://dev.mysql.com/downloads/mysql/.
挑选你需要的 MySQL Community Server 版本及对应的平台。

Linux/UNIX上安装Mysql

Linux平台上推荐使用RPM包来安装Mysql,MySQL AB提供了以下RPM包的下载地址:
  MySQL - MySQL服务器。你需要该选项,除非你只想连接运行在另一台机器上的MySQL服务器。
  MySQL-client - MySQL 客户端程序,用于连接并操作Mysql服务器。
  MySQL-devel - 库和包含文件,如果你想要编译其它MySQL客户端,例如Perl模块,则需要安装该RPM包。
  MySQL-shared - 该软件包包含某些语言和应用程序需要动态装载的共享库(libmysqlclient.so*),使用MySQL。
  MySQL-bench - MySQL数据库服务器的基准和性能测试工具。

用wget获取RPM包

MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo/yum/ 

下载mysql源安装包
  wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
安装mysql源
  yum localinstall mysql57-community-release-el7-8.noarch.rpm

检查mysql源是否安装成功

yum repolist enabled | grep "mysql.*-community.*"

接下来,在 Centos 系统下使用 yum 命令安装 MySql。

检测系统是否自带安装 mysql:

  rpm -qa | grep mysql

如果你系统有安装,那可以选择进行卸载:

  rpm -e mysql  // 普通删除模式
  rpm -e --nodeps mysql  // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除

安装 mysql:

  yum install mysql
  yum install mysql-server
  yum install mysql-devel

权限设置:

  chown mysql:mysql -R /var/lib/mysql

初始化 MySQL:

  mysqld --initialize

启动 MySQL:

  systemctl start mysqld 或 service mysqld start

查看运行状态:

  systemctl status mysqld

如果是 CentOS 7 版本,由于 MySQL数据库已从默认的程序列表中移除,可以使用 mariadb 代替:

  yum install mariadb-server mariadb

mariadb数据库的相关命令是:

  systemctl start mariadb #启动MariaDB
  systemctl stop mariadb #停止MariaDB
  systemctl restart mariadb #重启MariaDB
  systemctl enable mariadb #设置开机启动

验证Mysql安装

  在成功安装Mysql后,一些基础表会表初始化,在服务器启动后,你可以通过简单的测试来验证Mysql是否工作正常。
  使用 mysqladmin 工具来获取服务器状态。使用 mysqladmin 命令俩检查服务器的版本,在linux上该二进制文件位于 /usr/bin on linux ,在window上该二进制文件位于C:\mysql\bin 。

  [root@host]# mysqladmin --version

  linux上该命令将输出类似这样的系统信息:mysqladmin Ver 8.23 Distrib 5.0.9-0, for redhat-linux-gnu on x86_64
  如果以上命令执行后未输入任何信息,说明未安装成功。

使用 MySQL Client(Mysql客户端) 执行简单的SQL命令
  在 MySQL Client(Mysql客户端) 使用 mysql 命令连接到Mysql服务器上,默认情况下Mysql服务器的密码为空,所以本实例不需要输入密码。

  命令如下:

  [root@host]# mysql

  以上命令执行后会输出 mysql> 提示符,这说明已经成功连接到Mysql服务器上,可以在 mysql> 提示符执行SQL命令:

  mysql> SHOW DATABASES;
  +----------+
  | Database |
  +----------+
  | mysql |
  | test |
  +----------+
  2 rows in set (0.13 sec)

Mysql配置

  Mysql安装成功后,默认的root用户密码为空,你可以使用以下命令来创建root用户的密码:

  [root@host]# mysqladmin -u root password "new_password";

  现在,可以通过以下命令来连接到Mysql服务器:

  [root@host]# mysql -u root -p
  Enter password:*******

  注意:在输入密码时,密码是不会显示的。

修改默认用户密码

  方法1:直接用命令查看root用户的临时密码

  grep "password" /var/log/mysqld.log

  查询结果:2019-07-27T07:14:45.308378Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: SwZf%.v=r5;%

  使用 mysql -u root -p 命令登录,然后设置新的用户密码

  ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
  注意:终端中使用sql语句,分号结束符,必须有。

  方法2:修改配置,无密码登录,更新密码后在把配置改回去

  编辑配置文件

  vi /etc/my.cnf

  在[mysqld]域末尾加入 skip-grant-tables,保存退出,然后重启mysql服务。登录数据库修改密码。
  重新登录数据库修改密码。这里可以不输入密码。

  mysql> update user set password=password("新密码") where user="root";
  mysql> flush privileges;
  mysql> quit

  把 my.cnf 配置文件中新增的 skip-grant-tables 删除,或注释。


Windows 上安装 MySQL

Windows 上安装 MySQL 相对来说会较为简单,你需要在 MySQL 下载中下载 Windows 版本的 MySQL 安装包。点击 Download 按钮进入下载页面,点击下图中的 No thanks, just start my download. 就可立即下载。下载完后,将 zip 包解压到相应的目录,如 D:\mysql下。
接下来,需要配置下 MySQL 的配置文件。打开刚刚解压的文件夹 D:\mysql ,创建一个配置文件 my.ini,编辑 my.ini 配置以下基本信息:

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8

[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8

[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:\mysql
# 设置mysql数据库的数据的存放目录
datadir=D:\\mysql\\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password

接下来,启动 MySQL 数据库。以管理员身份打开 cmd 命令行工具,切换目录:

cd D:\mysql\bin

输入安装命令:

mysqld install

初始化data 目录,不做初始化,会出现服务无法启动的问题。

cd D:\mysql\bin
mysqld --initialize-insecure

初始化前,确保安装目录下有data目录,且为空。
启动服务:

net start mysql

启动成功后,登录mysql:

mysql -u root -p

此时,直接回车进入即可,无需输入密码。进入成功后,出现 mysql> 标志,再输入“ ALTER USER USER() IDENTIFIED BY '新密码';”即可修改密码。

【问题】
  无法进入mysql数据库
【措施】
  打开mysql目录下的my.ini文件,在文件的最后添加一行“skip-grant-tables”,保存并关闭文件。此配置用于跳过权限验证;
  重启MySQL服务;
  通过命令行进入mysql的bin目录,输入“mysql -u root -p”(不输入密码),回车即可进入数据库。
  修改好密码后,打开mysql目录下的sql.ini文件,删除最后一行的“skip-grant-tables”,保存并关闭文件

WINDOWS 下的视图管理

软件:Navicat for mysql,这是收费软件。好在网上可以搜到各种注册教程;不做赘述。


linux在安装后授权

1、查看mysql的user和host信息

use mysql;
mysql> select user,host from user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| root | localhost |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)

当前用户root的host默认是localhost;需要更改为%;

mysql> update user set host='%' where user='root';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> alter user 'root'@'%' identified with mysql_native_password by '密码';

查看数据库mysql的字符编码

mysql> show variables like '%character%';


CentOS7下安装MySQL数据库常见问题

1. ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
  检查MySql服务是否启动systemctl status mysqld;
  检查MySQL-server是否安装成功,可以通过yum install MySQL-server-5.6.25-1.el7.x86_64.rpm重新安装;

2. Fatal error: Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t exist
  执行mysql_install_db --user=mysql

3. rpm安装mysql后/etc/目录下找不到my.cnf
  whereis mysql查看mysql安装目录;
  mysql: /usr/bin/mysql /usr/lib64/mysql /usr/include/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz
  cp /usr/share/mysql/my-default.cnf /etc/my.cnf

4. Starting MySQL.. ERROR! The server quit without updating PID file (/var/lib/mysql/hsf.pid).
  执行yum install -y perl-Module-Install.noarch
  执行mysql_install_db --user=mysql
  执行service mysql start就可以正常启动mysql了
  use mysql
  update user set password=password('root') where user='root';

5. ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)
  查看“修改默认用户密码”部分

6. mysql在Linux表明大小写敏感问题
  编辑/etc/my.cnf在[mysqld]下插入lower_case_table_names=1
  修改完成后重启mysql服务
  通过show variables like '%case%',查看是否修改成功

7. MySQL不能远程连接

  1) Host is not allowed to connect to Host ‘10.72.35.8’ is not allowd to connect to this MySQL server
    GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’WITH GRANT OPTION;
    FLUSH PRIVILEGES;

  2)防火墙未关闭

    systemctl stop firewalld.service //关闭防火墙

    systemctl disable firewalld.service //禁止防火墙开机启动

8. Caused by: java.sql.SQLException: Your password has expired. To log in you must change it using a client that supports expired passwords.
  mysql5.6.25添加了密码过期机制
  use mysql;
  select host, user, password_expired from user;
  update user set password_expired='N';

9. ERROR 1728 (HY000): Cannot load from mysql.proc. The table is probably corrupted
  执行/etc/bin/mysql_upgrade,若出现无权访问需要再后面加上用户名和密码/etc/bin/mysql_upgrade -u root -p

10. ERROR 1010 (HY000): Error dropping database(can’t rmdir ‘./demo/’,errno:17)
  执行find / -name demo
  查找到mysql数据表存储位置,一般为 /var/lib/mysql/,直接删除该目录下的demo文件夹即可

11. mysql服务不能启动

  systemctl start mysqld 失败

  查看mysql日志

  cat /var/log/mysqld.log 有提示:The innodb_system data file ‘ibdata1’ must be writable

 

  需要修改mysql数据空间读写权限。

  通过yum安装的话,

  5.7版本以前是
    chmod -R 777 /usr/local/mysql/data/
  5.7版本以后是
    chmod -R 777 /var/lib/mysql

 

  如果不是通过yum安装的话:
    find / -name ibdata1
  找到对应目录更改权限

 

 

 

posted @ 2018-05-12 22:12  乐7  阅读(236)  评论(0编辑  收藏  举报