Linux 下MySQL的两种常用安装方式,以及初始化配置,以及可能出现乱码问题的解决

安装前建议切换到root用户来安装MySQL。

方式一:rpm安装

安装之前需要检查当前系统中是否已经存在MySQL以及MySQL的相关库,如果存在,需要卸载干净才能顺利安装 成功,否则安装可能会遇到各种各样的问题。

  1. 卸载MySQL相关:

    1. 查询已经安装过的MySQL: rpm -qa|grep -i mysql*
    2. 卸载所有查询到的关于MySQL的安装包:rpm remove --nodeps 查询到的包名
    3. 查找所有的MySQL的文件(find / -name mysql)并删除。
    4. 进入/etc/目录查看MySQL的配置文件my.cnf是否存在,若存在则删除:rm my.cnf 。
    5. 最后使用命令:rpm -qa|grep -i mysql 重新检查一遍。
  2. 准备MySQL的安装包以及依赖的库文件。

    1. 下载依赖库文件:wget http://mirror.centos.org/centos/6/os/x86_64/Packages/libaio-0.3.107-10.el6.x86_64.rpm
    2. 下载MySQL服务端安装包:wget http://dev.mysql.com/get/Downloads/MySQL-5.5/MySQL-server-5.5.30-1.el6.x86_64.rpm
    3. 下载MySQL客户端安装包:http://dev.mysql.com/get/Downloads/MySQL-5.5/MySQL-client-5.5.30-1.el6.x86_64.rpm
      以上文件可根据自己的需求再网上查找对应的版本进行下载。
  3. 分别安装库文件、服务端、客户端:
    rpm -ivh libaio-0.3.107-10.el6.x86_64.rpm
    rpm -ivh MySQL-server-5.5.30-1.el6.x86_64.rpm
    rpm -ivh MySQL-client-5.5.30-1.el6.x86_64.rpm

  4. 经过以上步骤,有MySQL的安装即完成。

安装方式二:yum安装

  1. 首先同第一种安装方式一样,需要做卸载工作。
  2. 安装MySQL服务端:yum -y install mysql-server
  3. 安装MySQL客户端:yum -y install mysql

启动MySQL

  1. 检查MySQL的服务是否存在:
    1. [root@vhost1 tohive]# service mysql status
      MySQL is not running
      若出现的不是上面的结果,而是:
      [root@vhost1 tohive]# service mysql status
      mysql: 未被识别的服务
      则可使用[root@vhost1 tohive]# service mysqld status
      mysqld is stopped
      若既不是MySQL is not running 也不是mysqld is stopped,则MySQL的安装失败。请重新安装(当然,可能是权限问题,请使用安装MySQL的用用户来检查)。
  2. MySQL的服务存在,但是没有开启,则可使用service mysqld start 或者 service mysql start 来开启MySQL服务。
  3. 设置MySQL的服务开机自启:
    chkconfig mysql on

初始化MySQL

  1. 如果mysql才刚安装好并没有设置过其他权限,直接在命令行输入mysql -uroot 进入到mysql的控制台。
  2. 删除用户表中user字段不是root用户的所有数据
    delete from mysql.user where USER <> 'root'
  3. 给root用户的数据设置密码:
    update table mysql.user set PASSWORD=PASSWORD('root') where USER='root'
  4. 给root用户添加一条可以远程访问数据库的记录:
    insert into mysql.user(USER,HOST,PASSWORD) values('root','%',PASSWORD('root'))
  5. 授权root最高权限:
    grant all privileges on *.* to root;
  6. 刷新权限:flush privileges;
  7. 退出MySQL:quit ,在进入MySQL则需要密码才能登陆了。

解决中文乱码问题:

  1. 查看MySQL数据库中所用的字符编码:
    SHOW VARIABLES LIKE '%char%'
    variable_name Value
    character_set_client utf8
    character_set_connection utf8
    character_set_database utf8
    character_set_filesystem binary
    character_set_results utf8
    character_set_server latin1 就是这里捣鬼:服务端的编码是latin1,将此处修改为utf8
    character_set_system utf8
    character_sets_dir /usr/share/mysql/charsets/
  2. 解决方案:
    cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
    vi my.cnf 在文件中对应位置添加下面配置:
    [client]
    port = 3306
    socket = /var/lib/mysql/mysql.sock
    default-character-set=utf8 # 添加
    [mysqld]
    port = 3306
    socket = /var/lib/mysql/mysql.sock
    character-set-server=utf8 #添加
    [mysql]
    no-auto-rehash
    重启MySQL服务器并登录后使用SHOW VARIABLES LIKE '%char%'查看:
    mysql> SHOW VARIABLES LIKE ‘%char%’;
    ±-------------------------±---------------------------+
    | Variable_name | Value |
    ±-------------------------±---------------------------+
    | character_set_client | utf8 |
    | character_set_connection | utf8 |
    | character_set_database | utf8 |
    | character_set_filesystem | binary |
    | character_set_results | utf8 |
    | character_set_server | utf8 |
    | character_set_system | utf8 |
    | character_sets_dir | /usr/share/mysql/charsets/ |
    ±-------------------------±---------------------------+

都变成utf8的类

其他:

  1. 修改数据库字符集:
    alter database db_name character set utf8;
  2. 修还表的字符集
    alter table table_name default character set utf8
  3. 修改表字段的字符集
    ALTER TABLE table_name CHANGE column_name column_name column_tye CHARACTER SET utf8;
  4. 修改表的字符集和所有列的字符集
    alter table table_name convert to character set utf8;

若有不妥之处,欢迎指教,我将虚心学习,谢谢!
创作不易,欢迎转载,转载请注明出处。

猜你喜欢

转载自blog.csdn.net/LLJJYY001/article/details/83020347