🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 一、修改数据目录 安装完毕,默认的数据文件路径为:/var/lib/mysql,如果需要调整到其他设定好的路径,遵循如下方法: 设定需要迁移到:/home/data/mysql目录; 1、创建好目录,停止mysql进程; 2、复制数据文件,从默认的地方,拷贝到目标地方; ``` cp -arp /var/lib/mysql /home/data ``` 3、修改配置文件/etc/my.cnf; 将datadir和socket中的原路径修改为目标路径; ``` [mysqld] datadir=/home/data/mysql socket=/home/data/mysql/mysql.sock ``` 为了保证客户端可以连接,增加配置项: ~~~ [mysql] socket=/home/data/mysql/mysql.sock [client] socket=/home/data/mysql/mysql.sock ~~~ 重启,即可; ## 二、重置密码 重置密码的第一步就是跳过MySQL的密码认证过程; 查找my.cnf文件的位置; ``` find -name my.cnf ``` 找到[mysqld],在它的后面任意下一行添加如下代码: ``` skip-grant-tables ``` 保存,重启; ``` service mysqld restart ``` 进入mysql: ![](https://img.kancloud.cn/40/b1/40b144189c838567079a055a392c6ebb_789x206.png) ``` use mysql; flush privileges; ALTER USER 'root'@'localhost' IDENTIFIED BY 'Fa@!#123'; flush privileges; quit ``` 编辑my.cnf,去掉刚才添加的skip-grant-tables,然后重启MySQL; ## 三、登录 ``` mysql -uroot -p'Fa@!#123' ``` >[danger] 如果密码中有特殊字符,必须加上单引号; ## 四、增加远程访问用户 先登录; ``` mysql>create user 'test'@'%' identified by 'Da#F!999$'; #正常用户 mysql>grant all privileges on test.* to 'test'@'%' with grant option; #只读用户 mysql>grant select on test.* to 'test'@'%' with grant option; mysql>flush privileges; ``` >[danger] all privileges 可以改为select,update,insert,delete,drop,create等操作权限; ## 五、调整必要参数 [mysqld] ``` #MySQL的最大连接数,如果服务器的并发连接请求量比较大,建议调高此值,以增加并行连接数量,当然这建立在机器能支撑的情况下,因为如果连接数越多,介于MySQL会为每个连接提供连接缓冲区,就会开销越多的内存,所以要适当调整该值,不能盲目提高设值。可以过'conn%'通配符查看当前状态的连接数量,以定夺该值的大小 max_connections =600 #接受的数据包大小;增加该变量的值十分安全,这是因为仅当需要时才会分配额外内存。例如,仅当你发出长查询或MySQLd必须返回大的结果行时MySQL才会分配更多内存。该变量之所以取较小默认值是一种预防措施,以捕获客户端和服务器之间的错误信息包,并确保不会因偶然使用大的信息包而导致内存溢出。 max_allowed_packet = 100M #单位是秒,默认是8小时,如果并发连接数比较高,这个值不能用默认的,否则会导致连接不够用,要改小,推荐设置为3600,连接池的配置需要参考这个配置,确保连接的有效性(连接池的timeout要略小于这里配置的值);两者配置一样的值即可; wait_timeout=3600 interactive_timeout=3600 #关闭域名解析 skip-name-resolve #开启独立的表空间 innodb_file_per_table=1 #默认字符集调整为utf8mb4 character-set-client-handshake=FALSE character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci init_connect='SET NAMES utf8mb4' ``` [client] ``` #默认字符集调整为utf8mb4 default-character-set=utf8mb4 ``` [mysql] ``` #默认字符集调整为utf8mb4 default-character-set=utf8mb4 ``` ## 六、参考实例 ``` [mysqld] lower_case_table_names=1 datadir=/home/data/mysql socket=/home/data/mysql/mysql.sock log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid max_connections =600 max_allowed_packet = 300M wait_timeout=1000 interactive_timeout=1000 skip-name-resolve innodb_file_per_table=1 log-bin=mysql-bin #开启binlog binlog-expire-logs-seconds=129600 # 只保留1.5天的日志文件 binlog-format=ROW [mysql] socket=/home/data/mysql/mysql.sock [client] socket=/home/data/mysql/mysql.sock ```