迁移项目中mysq中遇到的问题

来源:互联网 发布:凌鹏软件 编辑:程序博客网 时间:2024/06/05 03:35
关于mysql的问题,在其他两个服务器是好的,拿过来先是连不上,


最开始是安装:

直接yum install mysql 是不够的,继续


CentOS 7的yum源中貌似没有正常安装mysql时的mysql-sever文件,需要去官网上下载
 
# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
# rpm -ivh mysql-community-release-el7-5.noarch.rpm
# yum install mysql-community-server
成功安装之后重启mysql服务
 
# service mysqld restart
初次安装mysql是root账户是没有密码的
设置密码的方法
 
# mysql -uroot
mysql> set password for ‘root’@‘localhost’ = password('mypasswd');
mysql> exit
搞定!


然后想在本地用SQLyog 连接服务器mysql,操作数据,但是

本地连不上服务器mysql
   
远程连接mysql错误1130代码的方法 
  
在用远程连接Mysql服务器的数据库不管怎么弄都是连接不到错误代码是1130ERROR 
1130: Host 192.168.2.159 is not allowed to connect to this MySQL server  
猜想是无法给远程连接的用户权限问题。结果这样子操作mysql库即可解决。在本机登入
mysql后更改 "mysql" 数据库里的 "user" 表里的 "host" 项从"localhost"改称'%'。。 
mysql -u root -p 
mysql>use mysql; 
mysql>select host from user where user='root'; 
mysql>update user set host = '%' where user ='root'; 
mysql>flush privileges; 
mysql>select 'host'from user where user='root'; 
第一句是以权限用户root登录 
第二句选择mysql库 
第三句查看mysql库中的user表的host值即可进行连接访问的主机/IP名称 
第四句修改host值以通配符%的内容增加主机/IP地址当然也可以直接增加IP地址 
第五句刷新MySQL的系统权限相关表 
第六句再重新查看user表时有修改。。 

重起mysql服务即可完成

 期间

MySQL> update user set host='%' where user = 'root';     报错,解决
ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY' 
然后查看了下数据库的host信息如下: 
MySQL> select host from user where user = 'root'; 
+-----------------------+ 
| host | 
+-----------------------+ 
| % | 
| 127.0.0.1 | 
| localhost.localdomain | 
+-----------------------+ 
3 rows in set (0.00 sec) 
host已经有了%这个值,所以直接运行命令: 
复制代码 代码如下:

MySQL>flush privileges; 


再用SQLsog连接...成功!!









然后运行网站,发现连不上数据库,报错如下:
ERROR 1044 (42000): Access denied for user ”@’localhost’

修改过mysql的密码了,后来再连接时提示ERROR 1044 (42000): Access denied for user ”@’localhost’ to database ‘mysql’错误了,进不去mysql数据库了,下面我们来看问题解决办法。

最开始数据库密码为空,后来改过一次密码的加密写成了md5加密,退出后,空密码登陆没有mysql表,输入md5的密码登陆不进去,这时需要匿名登录。


无法直接修改localhost的用户名,然后


1.关闭mysql

 代码如下 复制代码
# service mysqld stop
2.屏蔽权限
 代码如下 复制代码
# mysqld_safe --skip-grant-table
第二步回车之后,会出现两行,其中有Starting demo from ******,这时需要新开一个窗口进行数据库的登陆操作。
3.新开起一个终端输入
 代码如下 复制代码
# mysql -u root mysql
# mysql> UPDATE user SET Password=PASSWORD('1234567') where USER='root';
# mysql> FLUSH PRIVILEGES;//记得要这句话,否则如果关闭先前的终端,又会出现原来的错误
# mysql> q

ok,新密码设置成功


这样网站连上了数据库,然后网页显示的中文都变成了?????号 ,mysql插入中文时也出现????号了,但保存英文是没有问题的,下面我来给各位同学介绍一下linux下mysql中文乱码解决方法。

linux下则需要修改/etc/my.cnf,加入
character-set-server=utf8

[root@VM_39_230_centos bin]# mysql -u root -p
Enter password: 
Welcome to the MySQL

mysql> show variables like 'character%'; 
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | latin1                     |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

本来全都是latin1     


                




原创粉丝点击