zoukankan      html  css  js  c++  java
  • Ubuntu10.4, SUSE11.2下 mysql5.1/5.5的安装与简单配置(包括增加用户和修改字符集)

    SUSE11.2 环境

    1.安装与卸载
    1.1先用 rpm -qa | grep -i mysql 查看安装了哪些mysql相关的包(查看相关环境)
    linux-9rgr:/home/tools # rpm -qa | grep -i mysql

    其实我们需要 mysql-5.1.36-6.7.2.i586
     mysql-client-5.1.36-6.7.2.i586
    这两个包

    1.2为了演示我先卸载这两个包:

    linux-9rgr:/etc # rpm -ev mysql-5.1.36-6.7.2.i586
    linux-9rgr:/etc # rpm -ev mysql-client-5.1.36-6.7.2.i586

    清理相关配置文件
    一个是/etc/ 目录下的my.cnf文件(这个文件有可能在卸载时已经自动删除了,若未删除就手动删除)
    一个是/var/lib 目录下的mysql目录
    linux-9rgr:/var/lib # rm mysql -rf

    1.3 安装mysql5.1
    我直接从suse11.2光盘上抓rpm包,当然你也可以直接从mysql的官网寻求一个镜像后抓。
    Suse11.2自带的mysql rpm在光盘上的目录为(假设光盘挂载在/media/CDROM/目录下)
    /media/CDROM/suse/i586

    我们现安装mysql-client-5.1.36-6.7.2.i586.rpm(注意安装顺序,因为依赖性)
    rpm -ivh mysql-client-5.1.36-6.7.2.i586.rpm
    然后再安装mysql-5.1.36-6.7.2.i586.rpm
    rpm -ivh mysql-5.1.36-6.7.2.i586.rpm
    当看mysql的service能成功启动时,证明已经成功安装
    我们再加一步测试:
    mysql -h localhost
    当出现mysql>
     就是OK了。
    Mysql默认在:/etc/init.d/
    linux-9rgr:/etc/init.d # ls mysq* -a
    mysql

    -------更新 2016/08/05---------

    现在可以直接将suse(我用的是 SUSE Linux Enterprise Server 11 SP3  (x86_64))的光盘挂载上上来,然后直接用yast安装5.5 方便的很

    mkdir /mnt/cdrom
    mount /dev/cdrom /mnt/cdrom


    2.配置
    linux上的mysql的配置文件正如上面所提到的在/etc/ 目录下的my.cnf文件,个人感觉类似于windows下的C:\Program Files\MySQL\MySQL Server 5.1目录下的my.ini配置文件(仅臆断未考证)


    2.1字符集配置
    参考
    http://www.cnblogs.com/anjou/archive/2007/02/16/651638.html

    根据需要修改 /etc/my.cnf,参考配置:
    [mysqld]
    # 设置默认为 INNODB 表,支持事务,支持行锁:
    default-storage-engine=INNODB
    # 设置默认的字符集:
    default-character-set=utf8

    -------更新 2016/08/05---------

    编码修改,这样的写法在5.5已经不支持,而且会导致mysql启动不了

    service mysql start
    Starting service MySQL warning: /var/run/mysql/mysql.sock didn't appear within 30 seconds
    chmod: cannot access `/var/run/mysql/mysqld.pid': No such file or directory

    应该这样写:

    character-set-server=utf8

    2.2用户配置
    参考http://blueram.javaeye.com/blog/316642

    [2010/10/23]

    悟空今天和我讨论了一个问题时,使我想起这个地方还漏了一点,抱歉,现在补上

    就是(因为user表式在mysql 数据库中的)

    use mysql

    mysql> select host,user,password from user;
    +------------+-----------+-------------------------------------------+
    | host       | user      | password                                  |
    +------------+-----------+-------------------------------------------+
    | localhost  | root      |                                           |
    | linux-9rgr | root      |                                           |
    | 127.0.0.1  | root      |                                           |
    | localhost  |           |                                           |
    | linux-9rgr |           |                                           |
    | %          | simoncook | *BB78605D2BD339161DFC5E158C72BBADC8293935 |
    +------------+-----------+-------------------------------------------+

     由于安装MySQL完后,MySQL会自动提供一个不带密码的root用户,为了安全起见给root设置密码:

    #mysqladmin -u root password 123 (123为密码,也可以写成:'123'或"123") ;

    添加 MySQL 用户(user name:user1,password:sql):
    grant all on *.* to user1@'%' identified by 'sql' with grant option
    mysql>flush privileges; (刷新系统权限表)

    参考http://www.jb51.net/LINUXjishu/10981.html
    清除usesr为null或者''的用户

    delete from user where user is NULL;
    delete from user where user='';

    user表如下:
    mysql> select host,user,password from user;
    +------------+-----------+-------------------------------------------+
    | host       | user      | password                                  |
    +------------+-----------+-------------------------------------------+
    | localhost  | root      | *BB78605D2BD339161DFC5E158C72BBADC8293935 |
    | linux-9rgr | root      |                                           |
    | 127.0.0.1  | root      |                                           |
    | %          | simoncook | *BB78605D2BD339161DFC5E158C72BBADC8293935 |
    +------------+-----------+-------------------------------------------+
    4 rows in set (0.00 sec)
    完成后我在本机依然不能正常连接,但在局域网内的另一台机器上可以连接
    报错:
    linux-9rgr:/etc/init.d # mysql -h localhost -u simoncook -p
    Enter password:
    ERROR 1045 (28000): Access denied for user 'simoncook'@'localhost' (using password: YES)
    不懂为啥
    刚才又试了下,在本机上不能用localhost  127.0.0.1,用局域网的ip(10.128.156.51)就没这样的问题了,
    mysql -h 10.128.156.51 -u simoncook -p

    那么我现在就类似地这样做:(user1和sql换成你刚才有问题的那个用户名和密码)
    grant all on *.* to user1@'localhost' identified by 'sql' with grant option
    实际上就把刚才那个用户又添加了一遍,只不过是在user表中的host列的值不一样了,这个值被指定成了localhost了

    后来发现 http://laffers.net/howtos/howto-install-mysql 这个文章也不错,,,

    Ubuntu10.4 环境

    上面的这一段是10年4月份写的

    由于这段时间做android开发,开发环境就移到了ubuntu下

    和suse略有不同

    我用的ubuntu10.4

    mysql5.1

    1. 安装 用新立得软件包管理器 就很容易搞定

    2. 安装后数据库的配置文件在/etc/mysql/my.cnf 文件中(网上有说一开始这个文件是一个空的,要到哪边去复制个模板过来,我好像没遇到)

    3. 编码的更改(当时是为python+Django准备的数据库)

    在配置文件中加上3行即可

    加上init那一行,能使得Django在syncdb时,创建的数据库为utf-8编码

    当我们在终端中看到select出来的结果乱码时

    也可以用set NAMES utf8

    win下为GBK

    4. 数据库本身所存放的位置

    在my.cnf中能看到

    /var/lib/mysql

    2010/11/16

    --EOF--

  • 相关阅读:
    Android pm命令用法
    SSH没有password安全日志
    使用reserve要再次避免不必要的分配
    找到最大的迭代次数串
    个人存储不同类型的对象有一些想法的碰撞检测
    [Android 4.4.3] 泛泰A870 Mokee4.4.3 20140610 RC2.0 通过刷第三版 by syhost
    zoj 3823 Excavator Contest(结构体)
    【Linux】CentOS系统
    Swift学习——Swift解释特定的基础(七)
    Android JNI开发提高篇
  • 原文地址:https://www.cnblogs.com/simoncook/p/1714757.html
Copyright © 2011-2022 走看看