centos7.0 阿里巴巴学生服务器搭配环境实录(3)--mysql环境搭建

来源:互联网 发布:兄弟连python视频下载 编辑:程序博客网 时间:2024/06/04 22:11

喵唔,虽然我现在很困很累,但是我要坚持在医院把今晚的mysql搭建实录写下来,记录今晚的心酸屎

----------------------------------------------华丽的分割线------------------------------------------------------------------------

centos7搭建mysql环境

首先centos7 已经不支持mysql,内部集成了mariadb,而安装mysql的话会和mariadb的文件冲突,所以需要先卸载掉mariadb,以下为卸载mariadb,安装mysql的步骤。

#列出所有被安装的rpm package

rpm -qa | grep mariadb
强制卸载
rpm -e --nodeps mariadb-libs-5.5.37-1.el7_0.x86_64


CentOS7的yum源中默认好像是没有mysql的。为了解决这个问题,我们要先下载mysql的repo源。

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

 安装mysql-community-release-el7-5.noarch.rpm包

sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm

安装mysql

sudo yum install mysql-server

这样就搞定啦,然后第一步要重置代码

登录时有可能报这样的错:ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2),原因是/var/lib/mysql的访问权限问题。下面的命令把/var/lib/mysql的拥有者改为当前用户:

sudo chown -R openscanner:openscanner /var/lib/mysql
然后,重启服务:
$ service mysqld restart
接下来登录重置密码:

$ mysql -u rootmysql > use mysql;mysql > update user set password=password(‘123456‘) where user=‘root‘;mysql > exit;
ps:这样我在做的时候没有成功,所以你可以再尝试下面的方法

方法1: 用SET PASSWORD命令  mysql -u root  mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');方法2:用mysqladmin  mysqladmin -u root password "newpass"  如果root已经设置过密码,采用如下方法  mysqladmin -u root password oldpass "newpass"方法3: 用UPDATE直接编辑user表  mysql -u root  mysql> use mysql;  mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';  mysql> FLUSH PRIVILEGES;在丢失root密码的时候,可以这样  mysqld_safe --skip-grant-tables&  mysql -u root mysql  mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='root';  mysql> FLUSH PRIVILEGES;

然后重启

如何启动/停止/重启MySQL  一、启动方式  1、使用 service 启动:service mysqld start  2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start  3、使用 safe_mysqld 启动:safe_mysqld&  二、停止  1、使用 service 启动:service mysqld stop  2、使用 mysqld 脚本启动:/etc/inint.d/mysqld stop  3、mysqladmin shutdown  三、重启  1、使用 service 启动:service mysqld restart  2、使用 mysqld 脚本启动:/etc/inint.d/mysqld restart  提问 编辑摘要  如何启动/停止/重启MySQL  一、启动方式  1、使用 service 启动:service mysqld start  2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start  3、使用 safe_mysqld 启动:safe_mysqld&  二、停止  1、使用 service 启动:service mysqld stop  2、使用 mysqld 脚本启动:/etc/inint.d/mysqld stop  3、mysqladmin shutdown  三、重启  1、使用 service 启动:service mysqld restart  2、使用 mysqld 脚本启动:/etc/inint.d/mysqld restart

然后接下来要解决乱码问题:

mysql中文乱码问题


       回到刚刚的问题,更新数据,数据中带中文,不成功,错误大概是这样的

MYSQL写入数据时报错ERROR 1366 (HY000): Incorrect string value: '\xE8\x8B\xB1\xE5\xAF\xB8...' for c
       

       然后,我们要做的主要就是将mysql的编码都改为utf-8.这个问题,我之前在我的window的mysql下解决过,主要就是改my.ini文件,将latin1的都改为utf-8.

[plain] view plain copy
  1. [mysql]  
  2. default-character-set=utf8  

       还是从头说下,首先,要从终端进入mysql,或者在mysql weorkbench中,输入[show variables like 'character%'],

       

       然后发现,database和server都是latin1,所以需要修改这两个为utf-8.输入命令[vi /etc/my.cnf],打开,发现我的my.cnf中的内容,比我看到的所有人提供的资料中的内容都要少.比如这篇文章中CentOS 6.5安装MySQL中文乱码问题解决 ,说

[plain] view plain copy
  1. [client]  
  2. default-character-set = utf8      #这个是我添加的  

       只有这一句是他添加的,可是我的my.cnf中根本没有[client],也没有[mysql],只有一个[mysqld].于是我根据这篇文章中的,CentOS7下让MySQL支持中文 内容修改,基本上全部拷贝他提供的,比如他在[mysql]中添加最后一句,我则是将这三句都拷过来.


[mysql]

no-auto-rehash

default-character-set=utf8


       最后说明下我主要加了,这些东西,最后,大概是变成这样.对于mysqld,不仅改变了server的编码,并且还设置新建的表的存储引擎和排序规则.


[plain] view plain copy
  1. [mysqld]  
  2. port = 3306  
  3. socket = /var/lib/mysql/mysql.sock  
  4. default-storage-engine=INNODB  
  5. character-set-server=utf8  
  6. collation-server=utf8_general_ci  
  7.   
  8. [client]  
  9. port = 3306  
  10. socket = /var/lib/mysql/mysql.sock  
  11. default-character-set=utf8  
  12.   
  13.   
  14. [mysql]  
  15. no-auto-rehash  
  16. default-character-set=utf8  

       然后,在终端,输入【service mysql restart】,重启mysql服务.如果,此时终端在mysql中,输入【exit】,退出mysql.再输入【service mysql restart】,就可以了.PS,如果你的my.cnf改的有问题的话,【service mysql restart】会执行很长时间,表示不成功的.而没有问题的话,大概3-4秒中,重启就可以完成了.


       然后再查看【show variables like 'character%'】,数据库编码就成功了,都是utf-8,除了filesystem,一直都是binaray,二进制外.


       然后为了以防万一,重新建立数据库officialsystem,然后用命令【show create databse officialsytem】,看出数据库的编码,为utf8.


       接下来,还是初始化一遍管理员的数据,和backstage的数据,通过界面更新backstage数据,成功.

接下来就是新建数据库和导入数据库了,这个就看你自己百度啦!
linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可。直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字-r 就是向下递归,不管有多少级目录,一并删除-f 就是直接强行删除,不作任何提示的意思
KO 搞定
---------------------------------------------------------------------------2016-04-26分割线------------------------------------------------------------------------------------------------------------
修改字符编码可以通过以下方式修改,但是用这种做法修改之后重启服务之后,编码会回到原状
通过MySQL命令行修改:(编码可选)mysql> set character_set_client=utf8;mysql> set character_set_connection=utf8;mysql> set character_set_database=utf8;mysql> set character_set_results=utf8;mysql> set character_set_server=utf8;mysql> set character_set_system=utf8;mysql> set collation_connection=utf8;mysql> set collation_database=utf8;mysql> set collation_server=utf8;


0 0
原创粉丝点击