1.新开通一个服务器远程连接mysql,使mysql授权办法
敲入mysql进入控制台
use mysql
show tables; //可以查看下有哪几张表
Insert INTO user(Host,User,Password) VALUES("124.205.148.226","root",password('123456'));//这样远程用SQLyog就能连接登录了。
GRANT ALL PRIVILEGES ON *.* TO root@124.205.148.226 identified by '123456';//这样就有建库的权限了 FLUSH PRIVILEGES; //令权限立即生效
2.mysql不知道root密码的办法,无法在控制台上敲mysql -u root -p进入了
mysqld_safe --skip-grant-table &
这样跳过表检查进入mysql
update mysql.user set password=password(' newpassword') where User='root';
FLUSH PRIVILEGES; //令权限立即生效
这样就能敲mysql -u root -p
然后密码 newpassword
进入了
3.mysql默认的varchar查询的时候是不区分大小写的。
如果想在查询时区分字段值的大小写,则:字段值需要设置BINARY属性,设置的方法有多种:
CREATE TABLE T(
A VARCHAR(10) BINARY
);
方法2、使用alter修改:
ALTER TABLE `tablename` MODIFY COLUMN `cloname` VARCHAR(45) BINARY;
通过查询资料发现需要设置collate(校对) 。 collate规则:
*_bin: 表示的是binary case sensitive collation,也就是说是区分大小写的
*_cs: case sensitive collation,区分大小写 *_ci: case insensitive collation,不区分大小写 方法1、创建时设置:CREATE TABLE T(
A VARCHAR(10) BINARY
);
方法2、使用alter修改:
ALTER TABLE `tablename` MODIFY COLUMN `cloname` VARCHAR(45) BINARY;
方法3、可以将查询条件用binary()括起来。 比如: select * from TableA where columnA like binary('aaa');
方法4、mysql table editor中直接勾选BINARY项。
4.mysql的upsert(有则更新,无则增之)
INSERT INTO search_click(kwd, movie_ls) VALUES('abc', 'json') ON DUPLICATE KEY UPDATE movie_ls = 'json1';
5.修改mysql的id号为uuid随机字符串
修改id类型为varchar 36位
ALTER TABLE movie_tags MODIFY id varchar(36);
INSERT INTO table_name(id, name) VALUES(uuid(), "mac");
转载:centos安装mysql
安装MySQL。
[root@sample ~]# yum -y install mysql-server ← 安装MySQL
[root@sample ~]# yum -y install php-mysql ← 安装php-mysql
配置MySQL
[root@sample ~]#vim /etc/my.cnf ← 编辑MySQL的配置文件
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1 ← 找到这一行,在这一行的下面添加新的规则,让MySQL的默认编码为UTF-8
default-character-set = utf8 ← 添加这一行
然后在配置文件的文尾填加如下语句:
[mysql]
default-character-set = utf8
启动MySQL服务
[root@sample ~]# chkconfig mysqld on ← 设置MySQL服务随系统启动自启动
[root@sample ~]# chkconfig --list mysqld ← 确认MySQL自启动
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off ← 如果2--5为on的状态就OK
[root@sample ~]#/etc/rc.d/init.d/mysqld start ← 启动MySQL服务
提示:
在第一次装上时,可以敲入命令:/usr/bin/mysql_install_db来初始化
如果启动不起来。可以先去 /var/log/mysqld.log看看log
可以
我发现这样一行/usr/libexec/mysqld: unknown variable 'default-character-set=utf8'
用character_set_server=utf8来取代 default-character-set=utf8 能解决这个问题
可以在配置文件中看到默认配置的数据文件位置在:datadir=/var/lib/mysql
Initializing MySQL database: [ OK ]
Starting MySQL: [ OK ]
MySQL初始环境设定
[1]为MySQL的root用户设置密码
MySQL在刚刚被安装的时候,它的root用户是没有被设置密码的。首先来设置MySQL的root密码。
[root@sample ~]# mysql -u root ← 用root用户登录MySQL服务器
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 4.1.20
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> select user,host,password from mysql.user; ← 查看用户信息
+------+------------------------------+---------------+
| user | host | password |
+------+------------------------------+---------------+
| root | localhost | | ← root密码为空
| root | sample.centospub.com | | ← root密码为空
| | sample.centospub.com | |
| | localhost | |
|root | % |XXX |
| | | |
+------+------------------------------+---------------+
4 rows in set (0.00 sec)
mysql> set password for 在这里填入root密码'); ← 设置root密码
Query OK, 0 rows affected (0.01 sec)
mysql> set password for 在这里填入root密码'); ← 设置root密码
Query OK, 0 rows affected (0.01 sec)只有设置了这个才可以,才可以通过数据库来安装网址
mysql> set password for ); ← 设置root密码
Query OK, 0 rows affected (0.01 sec)
mysql> select user,host,password from mysql.user; ← 查看用户信息
+------+--------------------------------+--------------------------+
| user | host | password |
+------+--------------------------------+--------------------------+
| root | localhost | 19b68057189b027f | ← root密码被设置
| root | sample.centospub.com | 19b68057189b027f | ← root密码被设置
| | sample.centospub.com | |
| | localhost | |
+------+--------------------------------+--------------------------+
4 rows in set (0.01 sec)
mysql> exit ← 退出MySQL服务器
Bye
然后,测试一下root密码有没有生效。
[root@sample ~]# mysql -u root ← 通过空密码用root登录
ERROR 1045 (28000): Access denied for user (using password: NO) ← 出现此错误信息说明密码设置成功
[root@localhost ~]# mysql -u root -h sample.centospub.com ← 通过空密码用root登录
ERROR 1045 (28000): Access denied for user (using password: NO) ← 出现此错误信息说明密码设置成功
[root@sample ~]#mysql -u root -p ← 通过密码用root登录
Enter password: ← 在这里输入密码
Welcome to the MySQL monitor. Commands end with ; or \g. ← 确认用密码能够成功登录
Your MySQL connection id is 5 to server version: 4.1.20
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> exit
Bye
[root@sample ~]# mysql -u root -h sample.centospub.com -p ← 通过密码用root登录
Enter password: ← 在这里输入密码
Welcome to the MySQL monitor. Commands end with ; or \g. ← 确认用密码能够成功登录
Your MySQL connection id is 6 to server version: 4.1.20
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> exit ← 退出MySQL服务器
Bye
[2] 删除匿名用户
在MySQL刚刚被安装后,存在用户名、密码为空的用户。这使得数据库服务器有无需密码被登录的可能性。为消除隐患,将匿名用户删除。
[root@sample ~]# mysql -u root -p ← 通过密码用root登录
Enter password: ← 在这里输入密码
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7 to server version: 4.1.20
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> select user,host from mysql.user; ← 查看用户信息
+------+----------------------------+
| user | host |
+------+----------------------------+
| | localhost |
| root | localhost |
| | sample.centospub.com |
| root | sample.centospub.com |
+------+----------------------------+
4 rows in set (0.02 sec)
mysql> delete from mysql.user where user=''; ← 删除匿名用户
Query OK, 2 rows affected (0.17 sec)
mysql> select user,host from mysql.user; ← 查看用户信息
+------+----------------------------+
| user | host |
+------+----------------------------+
| root | localhost |
| root | sample.centospub.com |
+------+----------------------------+
2 rows in set (0.00 sec)
mysql> exit ← 退出MySQL服务器
Bye