安装前建议切换到root用户来安装MySQL。
方式一:rpm安装
安装之前需要检查当前系统中是否已经存在MySQL以及MySQL的相关库,如果存在,需要卸载干净才能顺利安装 成功,否则安装可能会遇到各种各样的问题。
-
卸载MySQL相关:
- 查询已经安装过的MySQL:
rpm -qa|grep -i mysql*
。 - 卸载所有查询到的关于MySQL的安装包:
rpm remove --nodeps 查询到的包名
。 - 查找所有的MySQL的文件(
find / -name mysql
)并删除。 - 进入/etc/目录查看MySQL的配置文件my.cnf是否存在,若存在则删除:rm my.cnf 。
- 最后使用命令:
rpm -qa|grep -i mysql
重新检查一遍。
- 查询已经安装过的MySQL:
-
准备MySQL的安装包以及依赖的库文件。
- 下载依赖库文件:
wget http://mirror.centos.org/centos/6/os/x86_64/Packages/libaio-0.3.107-10.el6.x86_64.rpm
- 下载MySQL服务端安装包:
wget http://dev.mysql.com/get/Downloads/MySQL-5.5/MySQL-server-5.5.30-1.el6.x86_64.rpm
- 下载MySQL客户端安装包:
http://dev.mysql.com/get/Downloads/MySQL-5.5/MySQL-client-5.5.30-1.el6.x86_64.rpm
以上文件可根据自己的需求再网上查找对应的版本进行下载。
- 下载依赖库文件:
-
分别安装库文件、服务端、客户端:
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 -
经过以上步骤,有MySQL的安装即完成。
安装方式二:yum安装
- 首先同第一种安装方式一样,需要做卸载工作。
- 安装MySQL服务端:
yum -y install mysql-server
。 - 安装MySQL客户端:
yum -y install mysql
。
启动MySQL
- 检查MySQL的服务是否存在:
[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的用用户来检查)。
- MySQL的服务存在,但是没有开启,则可使用
service mysqld start
或者service mysql start
来开启MySQL服务。 - 设置MySQL的服务开机自启:
chkconfig mysql on
初始化MySQL
- 如果mysql才刚安装好并没有设置过其他权限,直接在命令行输入mysql -uroot 进入到mysql的控制台。
- 删除用户表中user字段不是root用户的所有数据
delete from mysql.user where USER <> 'root'
- 给root用户的数据设置密码:
update table mysql.user set PASSWORD=PASSWORD('root') where USER='root'
- 给root用户添加一条可以远程访问数据库的记录:
insert into mysql.user(USER,HOST,PASSWORD) values('root','%',PASSWORD('root'))
- 授权root最高权限:
grant all privileges on *.* to root;
- 刷新权限:
flush privileges;
- 退出MySQL:quit ,在进入MySQL则需要密码才能登陆了。
解决中文乱码问题:
- 查看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/ - 解决方案:
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的类
其他:
- 修改数据库字符集:
alter database db_name character set utf8;
- 修还表的字符集
alter table table_name default character set utf8
- 修改表字段的字符集
ALTER TABLE table_name CHANGE column_name column_name column_tye CHARACTER SET utf8;
- 修改表的字符集和所有列的字符集
alter table table_name convert to character set utf8;
若有不妥之处,欢迎指教,我将虚心学习,谢谢!
创作不易,欢迎转载,转载请注明出处。