GRANT ALL PRIVILEGES ON 数据库名.* TO '用户名'@'登录地址' IDENTIFIED BY '密码' WITH GRANT OPTION;
FLUSH PRIVILEGES;
如果是仅限本机登录,登录地址为localhost,如果任意地址都可以登录,则为%
数据库名为*表示所有的数据库都有权限,也可以指定具体的某个表。
#重要:
在centos7上安装 mariadb后,使用以上语句创建用户后登录失败。原因是mariadb不允许空密码的用户。需要删除掉数据库中密码为空字符串的用户,然后再flush下即可:
select host,user,password from mysql.user;
delete from mysql.user where password ='';
flush privileges;
退出当前session,重新登录下试试看,就可以工作了
#设置mariadb服务器的默认编码
SET character_set_server = 'utf8';
SET collation_server = 'utf8_general_ci';
#设置数据存储目录datadir
启动mariadb后如果再想修改datadir目录的话会比较麻烦:
1.先停止服务
systemctl stop mariadb.service
2.拷贝目录:
rsync -av /var/lib/mysql /home/ksi/mariadb/data
3.拷贝配置文件并修改:
cp /usr/share/mysql/my-huge.cnf /etc/my.cnf.d/
mv /etc/my.cnf.d/server.cnf /etc/my.cnf.d/server.cnf.bak
mv /etc/my.cnf.d/my-huge.cnf /etc/my.cnf.d/server.cnf
vim /etc/my.cnf.d/server.cnf
修改或增加datadir:
# The following options will be passed to all MySQL clients
[client]
#password = your_password
port = 3306
socket = /home/ksi/mariadb/mysql.sock
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
#skip-grant-tables
datadir = /home/ksi/mariadb/data
character_set_server=utf8
port = 3306
socket = /home/ksi/mariadb/mysql.sock
保存退出。
3.修改目录权限:
chown -R mysql:mysql /home/ksi/mariadb
4.使用下列命令安装
mysql_install_db --user=mysql --datadir=/home/ksi/mariadb/data
5.修改启动脚本:
vim /usr/lib/systemd/system/mariadb.service
找到这个项:
ProtectHome
修改为false。保存退出。这一步如果不修改的话,会导致使用systemctl 启动mariadb服务失败。
6.启动mariadb:
systemctl start mariadb.service
7.检查datadir:
select @@datadir;
@@datadir
/home/ksi/mariadb/data/