启动/停止
service mysqld start
service mysqld stop
一、创建mysql文件夹和mysql的data文件夹
mkdir /usr/local/mysql
mkdir /usr/local/mysql/data
二、创建mysql账户
groupadd mysql
useradd -r -g mysql mysql
三、解压/移动
解压:
tar -zxvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
移动到mysql目录:
mv mysql-5.7.21-linux-glibc2.12-x86_64/* /usr/local/mysql/
四、开始安装
cd /usr/local/mysql
./bin/mysql_install_db —user=mysql —basedir=/usr/local/mysql/ —datadir=/usr/local/mysql/data/
安装过程很快,期间会出现几个warning,基本都是一些open file和cache的大小,只要不出现error就不影响
五、添加my.cnf文件及内容到 /etc根目录下
[client]port = 3306[mysqld]#skip_grant_tables#Mysql服务的唯一编号 每个mysql服务Id需唯一server-id = 1#服务端口号 默认3306port = 3306#mysql安装根目录basedir = /usr/local/mysql#mysql数据文件所在位置datadir = /usr/local/mysql/data#事务隔离级别,默认为可重复读,mysql默认可重复读级别(此级别下可能参数很多间隙锁,影响性能)transaction_isolation = READ-COMMITTED#数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)character-set-server = utf8mb4#数据库字符集对应一些排序等规则,注意要和character-set-server对应collation-server = utf8mb4_general_ci#设置client连接mysql时的字符集,防止乱码init_connect='SET NAMES utf8mb4'#是否对sql语句大小写敏感,1表示不敏感lower_case_table_names = 1#最大连接数max_connections = 400#最大错误连接数max_connect_errors = 1000#TIMESTAMP如果没有显示声明NOT NULL,允许NULL值explicit_defaults_for_timestamp = true#SQL数据包发送的大小,如果有BLOB对象建议修改成1Gmax_allowed_packet = 128M#MySQL连接闲置超过一定时间后(单位:秒)将会被强行关闭#MySQL默认的wait_timeout 值为8个小时, interactive_timeout参数需要同时配置才能生效interactive_timeout = 1800wait_timeout = 1800#内部内存临时表的最大值 ,设置成128M。#比如大数据量的group by ,order by时可能用到临时表,#超过了这个值将写入磁盘,系统IO压力增大tmp_table_size = 134217728max_heap_table_size = 134217728#禁用mysql的缓存查询结果集功能#后期根据业务情况测试决定是否开启#大部分情况下关闭下面两项query_cache_size = 0query_cache_type = 0
将配置项保存后,将mysq服务添加到系统服务:
cp -a ./support-files/mysql.server /etc/init.d/mysqld
六、启动mysql服务,并作用户密码配置
创建ln(创建后可以在操作系统任何目录运行mysql命令):
ln -s /usr/local/mysql/bin/mysql /usr/bin/
启动mysql服务:
service mysqld start
七、修改密码
执行:
mysql -u root -p 回车->密码提示->(不理会)继续回车,登录成功(由于在my.cnf里配置了skip-grant- tables,所以这里可以不用输入密码,直接登录)
执行:
use mysql;
update user set authentication_string=password(‘rootabc’) where user=’root’;
注意:如果是低版本的mysql,修改的字段会有所不同(看到最后)。
执行:
flush privileges;
quit;
执行:
service mysqld stop
vi /etc/my.cnf
找到[mysqld],将skip-grant-tables这一行注释掉,即前面加“#”
执行:
:wq!
保存并关闭my.cnf
执行:
service mysqld start
mysql -u root -p
输入密码,回车登录成功。
八、MySQL远程服务连接设置
用root登录到mysql,即可。
执行:
mysql -u root -p rootabc
use mysql;
GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘rootabc’ WITH GRANT OPTION;
update user set authentication_string=password(‘rootabc’) where user=’root’;
flush privileges;
quit;
九、Linux 设置mysql开机自启动
1、将服务文件拷贝到init.d下,并重命名为mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
2、赋予可执行权限
chmod +x /etc/init.d/mysqld
3、添加服务
chkconfig —add mysqld
4、显示服务列表
chkconfig —list
如果看到mysql的服务,并且3,4,5都是开的话则成功,如果是关,则:chkconfig —level 345 mysqld on
注意:云平台上的端口该开放的就设置开放,服务器上的防火墙端口该开放的也设置开放。
出现的错误备注:
1、mysql 启动错误(InnoDB: Operating system error number 13 )
错误13说明没有权限。
使用命令(可以解决):
chmod -R 777 /var
2、You must reset your password using ALTER USER statement before executing this statement报错处理
MySQL版本5.7.6版本以前用户可以使用如下命令:
SET PASSWORD = PASSWORD(‘rootabc’);
MySQL版本5.7.6版本开始的用户可以使用如下命令:
ALTER USER USER() IDENTIFIED BY ‘rootabc’;
flush privileges;
quit;
摘自网络自有整理并成功安装。
