1、去mysql官网下载rpm包
地址:https://downloads.mysql.com/archives/community/
注意、注意、注意坑:
只下载linux-generic版的。就算你的服务器是红帽也不要下载红帽的。
因为根本就起不来服务,我的就是红帽4.8版的,折腾了一天,最后用了linux-generic版的才可以启动了。
2、解包
tar -xvf MySQL-5.6.12-2.linux_glibc2.5.x86_64.rpm-bundle.tar
只要client和server就可以了
3、rpm安装
安装之前先检查一下是否已经安装mysql和mariadb-libs
rpm -qa|grep MySQL
有则使用rpm -e MySQL-server卸载(无需版本号)
卸载mariadb-libs是需要强制卸载加--nodeps参数,因为它还依赖了别的,只卸载mariadb即可
没有则执行下面命令安装 :
1、安装mysql客户端:rpm -ivh MySQL-client-5.6.12-2.linux_glibc2.5.x86_64.rpm
2、安装mysql服务端:rpm -ivh MySQL-server-5.6.12-2.linux_glibc2.5.x86_64.rpm
服务端安装完成后,我记得是5.5版的有下图提示,5.6的好像没有。记不清了
如果没有上图可能需要执行mysql_install_db --user=mysql初始化数据库,执行完成也会看见上图。5.7版的可以执行mysqld --initialize(设置随机密码)或mysqld --initialize-insecure(设置空密码)
注意:初始化时有可能又会缺少某些依赖。例如:perl-Data-Dumper,用yum下载或者去https://pkgs.org/下载rpm包
4、修改root密码
/usr/bin/mysqladmin -u root password 'root' (密码改为root)
如果提示:
/usr/bin/mysqladmin: connect to server at 'localhost' failed error: 'Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)' Check that mysqld is running and that the socket: '/var/lib/mysql/mysql.sock' exists!
则需要先启动服务
或者alter user '用户名'@'登录主机' identified by '密码(自定义)';
或者SET PASSWORD FOR root@localhost = '123456';
或者SET PASSWORD FOR root@localhost = password('123456');
5、修改配置文件(非常重要)
vim /etc/my.cnf
如果不存在,则需要先复制配置文件到etc目录下:cp -rf /usr/share/mysql/my-default.cnf /etc/my.cnf
[mysqld]
#表名大小写不敏感
lower_case_table_names=1
#开启binlog
log-bin=mysql-bin
server-id = 1(单个节点id)
expire_logs_days = 10(表示此日志保存时间为10天)
#开启慢日志查询
slow_query_log=1
long_query_time=1(查询超过多长时间记录)
log_queries_not_using_indexes=1(记录没有索引的查询)
6、启动服务
service mysql start
或
/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --daemonize --basedir=/usrlocal/mysql --datadir=/usr/local/mysql/data --user=root --log-error=/usr/local/mysql/error.log
7、设置为开机启动(可不做)
chkconfig mysql on
完毕!
8、可能出现的问题:
如果执行mysql命令提示error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
需执行yum install libncurses* -y (操作系统缺少curses类库)
下面开始添加用户操作
1、添加新用户
create user 'sumengnan'@'%' identified by '123456'; //添加sumengnan用户并允许外网 IP 访问
2、创建数据库
create database sumengnandb DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
3、为新用户分配权限
grant all privileges on sumengnandb.* TO 'sumengnan'@'%'; //授予用户对该数据库的全部权限
假如需要对zwybackup用户单独分配权限:
- 全局的权限需使用*.*:grant reload,replication client,create tablespace,process on *.* TO 'zwybackup'@'%';
- 单独的某个表权限:grant trigger,select,lock tables,show view on jsw_gd.* TO 'zwybackup'@'%'; (如果报错后面加上with grant option)
- 查看权限:show grants for 'zwybackup'@'%';
- 删除权限:revoke create on *.* from 'zwybackup'@'%';
- 更多权限参考:https://dev.mysql.com/doc/refman/5.7/en/privileges-provided.html
4、刷新权限
flush privileges;
扩展:
查询用户:select user,host from mysql.user;
删除用户:drop user sumengnan;
导出导入参考:https://blog.csdn.net/sumengnan/article/details/104339518
其他问题
1、drop database test删除数据库时提示ERROR 1010 (HY000):Error dropping database (can’t rmdir ‘./test’, errno: 41)
原因:test 数据库内还有东西,需要清空。
find / -name test 全局查询test文件夹,清除里面的内容
2、修改普通用户密码
需要root登录后执行:
use mysql;
UPDATE user SET password=PASSWORD('123') WHERE user='sumengnan';
flush privileges;
用户权限图: