安装环境:CentOS6.5
Mysql版本:5.6.33,下载地址:http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
1.添加用户组
groupadd mysql
useradd -r -g mysql mysql
2.解压mysql(假设mysql数据库压缩包存放在/usr/local/下),重命名
cd /usr/local/
tar -zxvf mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.6.33-linux-glibc2.5-x86_64 ./mysql
3.修改权限,创建目录
cd /usr/local/mysql/
mkdir ./data/mysql
chown -R mysql:mysql ./
4.安装mysql
./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/mysql
5.添加service服务
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
cp support-files/my-default.cnf /etc/my.cnf
6.修改启动脚本,大致在脚本45行左右(:set nu 显示行号)
vi /etc/init.d/mysqld
#修改项:(自行根据存放mysql目录设置)
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data/mysql
7.加入环境变量,编辑 /etc/profile,最后追加如下,这样可以在任何地方用mysql命令
vi /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
更新环境变量
source /etc/profile
8、启动数据库,测试连接并且增加远程登录权限
service mysqld start
mysql -uroot
执行
grant all privileges on *.* to root@'%' identified by 'root';
flush privileges;
9.退出数据库,修改root密码为123456
mysql>use mysql;
mysql> update user set password=password("123456") where user='root';
mysql> flush privileges;
mysql> exit;
现在可以使用如下命令登录mysql数据库
mysql -uroot -p123456
10.修改字符集为utf8
(注意,在修改字符集之前创建的表需要手动使用客户端工具修改表字段的字符集,以Navicat工具为例,连接数据库—>选择数据库—>选择需要修改的表—>右键设计表—>单击需要修改的字段—>在下方选择utf8字符集)
编辑/etc/my.cnf文件
vi /etc/my.cnf
在[mysqld]上面添加如下行:
[client]
default-character-set=utf8
在sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES上面添加如下行:
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci
配置文件除去注释后如下:
[client]
default-character-set=utf8
[mysqld]
basedir = /usr/local/mysql/
datadir = /usr/local/mysql/data/mysql
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
保存退出后重启mysql服务
service mysqld restart
#启动mysql
service mysqld start
#关闭mysql
service mysqld stop
#查看运行状态
service mysqld status
#运行mysql命令行
mysql -uroot -p123456
##常见错误:
当修改好root密码后,很有可能出现这种情况
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
这是因为root登录权限不足,具体修改方法如下
需要先停止mysql服务
service mysqld stop
当提示mysql已停止后进行下一步操作,在终端命令行输入
mysqld_safe --skip-grant-tables &
当光标停住的时候输入:mysql以登录mysql系统
mysql
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
+-----------+------+
| host | user |
+-----------+------+
| % | root |
| 127.0.0.1 | root |
| ::1 | root |
| db\_2 | |
| db\_2 | root |
| localhost | |
| localhost | root |
+-----------+------+
7 rows in set (0.00 sec)
mysql> flush privileges;
mysql> exit;
然后重新启动mysql服务就可以了。
如果执行update user set host = ‘%’ where user = 'root’这步骤报错:
ERROR 1146 (42S02): Table ‘mysql.user’ doesn’t exist
那么修改如下地方:
退出数据库
exit
vi /etc/my.cnf
修改以下两项值为:
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data/mysql
退出保存
输入命令,杀死mysql进程:
ps -ef|grep mysqld
kill -9 (查询出来的所有PID)
service mysqld start
service mysqld stop
然后重新输入mysqld_safe --skip-grant-tables &,按步骤来
如果重启mysql服务失败,有可能是有mysql服务正在启动,输入:
ps -ef|grep mysqld
kill -9 (查询出来的所有PID)
service mysqld start