• 在 Ubuntu 中安装 MySQL 指南


    安装MySQL

    在Ubuntu上可以使用Ubuntu Software Center或者apt命令来安装MySQL,两种方式都十分方便。

    1. 使用Ubuntu Software Center:打开Ubuntu Software Center,在右上角的搜索框查询mysql,然后选定MySQL Server,点击安装即可。

    2. 使用apt:打开终端执行 ”sudo apt-get install mysql-server“ 即可。

    MySQL初始配置

    MySQL完成安装后可以直接使用root账户登录,且该账户默认是没有密码的。注意这里的root角色就是指你的Ubuntu的root角色,如果你当前使用的系统帐号不是root的话,也不必切换到系统root账户,可以在登录MySQL的时候使用“-u"这个参数来指定登录账户。如:

    $ mysql -u root
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | test               |
    +--------------------+
    4 rows in set (0.00 sec)
    
    mysql> select Host, User from user;
    +-----------+------------------+
    | Host      | User             |
    +-----------+------------------+
    | 127.0.0.1 | root             |
    | ::1       | root             |
    | iUbuntu   |                  |
    | iUbuntu   | root             |
    | localhost |                  |
    | localhost | debian-sys-maint |
    | localhost | root             |
    +-----------+------------------+
    7 rows in set (0.00 sec)
    View Code

    因为此时root账户默认没有密码,所以不用输入密码就能以root角色登录并查看所有信息的权限。如果换成非root角色登录MySQL,则只拥有部分数据库操作权限。

    $ mysql
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | test               |
    +--------------------+
    2 rows in set (0.00 sec)
    
    mysql> use mysql
    ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'
    View Code

    因此MySQL完成安装后的第一件事就是给root用户设置密码,否则数据库将毫无安全可言。

    mysql> GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY "<password>";

    将以上命令中的<password>替换为你要设定的密码,以上命令的意思是对在本机(localhost)使用<password>密码登录的root用户赋予所有数据库的操作权限。设置密码后,如果再以root用户登录就需要输入密码了,如:

    $ mysql -u root
    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
    $ mysql -u root -p
    Enter password: 
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 75
    Server version: 5.5.34-0ubuntu0.13.10.1 (Ubuntu)
    
    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> 
    View Code

    建立数据库独立用户

    因为root用户拥有数据库的所有操作权限,所以不能轻易地提供给别人使用。在一个MySQL实例中可以创建多个数据库,这些数据库可能归属于不同项目,每个数据库的操作角色也不一样。对此可以针对不同那个数据库指定用户进行访问。

    首先使用root角色创建一个数据库
    mysql> create database db_web_monitor
    
    然后将这个数据库授予一个叫xavier的用户使用
    mysql> GRANT ALL PRIVILEGES ON db_web_monitor.* TO xavier@localhost IDENTIFIED BY "xavier";

    这样就可以使用xavier用户,密码为xavier在本机登录MySQL操作db_web_monitor数据库了。

    $ mysql -u xavier
    ERROR 1045 (28000): Access denied for user 'xavier'@'localhost' (using password: NO)
    $ mysql -u xavier -p
    Enter password: 
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 77
    Server version: 5.5.34-0ubuntu0.13.10.1 (Ubuntu)
    
    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> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | db_web_monitor     |
    | test               |
    +--------------------+
    3 rows in set (0.00 sec)
    
    mysql> 
    View Code

    开放远程登录权限

    1. 首先修改MySQL的配置文件,允许监听远程登录。

    $ sudo vi /etc/mysql/my.cnf
    
    找到bind-address所在行
    
     45 # Instead of skip-networking the default is now to listen only on
     46 # localhost which is more compatible and is not less secure.
     47 bind-address        = 127.0.0.1
    
    将 bind-address值修改为本机IP即可。
    
    注意注释说明,如果是较老版本的MySQL,此处就应该是skip-networking,直接将其注释即可。

    2. 授予用户远程登录权限。

    mysql>GRANT ALL PRIVILEGES ON db_web_monitor.* TO xavier@"%" IDENTIFIED BY "xavier";

    如此这般,xavier用户就可以在任意主机通过IP访问到本机MySQL,对db_web_monitor数据库进行操作了。

    3. 更改sql_mode。

     MySQL 5.5 以后增加了“严格模式”,在严格模式下,如果对要求有默认值的字段不能再缺省写入。

     查看当前是否是严格模式:SELECT @@GLOBAL.sql_mode

    查看MySQL当时是否是严格模式,含有STRICT_TRANS_TABLES的就是。
    
    mysql> SELECT @@GLOBAL.sql_mode;
    
    +----------------------------------------------------------------+
    | @@GLOBAL.sql_mode                                              |
    +----------------------------------------------------------------+
    | STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
    +----------------------------------------------------------------+
    
    取消MySQL的严格模式,需要root权限。
    
    mysql> SET @@global.sql_mode='NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

      

    在MySQL Server 5.6根目录下只有my-default.ini,更改这个文件或者创建my.ini,然后在*.ini文件中设置sql_mode是没有用的。

  • 相关阅读:
    spring 使用 context:property-placeholder 加载 多个 properties
    Spring自动注入Bean
    正则查询符合条件的字符串
    csv测试类。用起来,就是那么简单。每个单元格都是以逗号分隔
    eclipse 设置字体高亮
    订单生成类,个人经验总结!
    java 导出Excel 大数据量,自己经验总结!
    Oracle的数据恢复——Flashback用法汇总
    org.apache.log4j.Logger详解
    Date、String和Timestamp类型转换
  • 原文地址:https://www.cnblogs.com/ifantastic/p/3432557.html
Copyright © 2020-2023  润新知